主要Mark一下R程序中,分类进行数值计算的情况。
1.aggregate函数
有数据框case,列名分别a,b,c,d,e,f
(1)根据一列对另一列求和:根据a,对d求和
sum1 <- aggregate(case[, 4], list(case[,1]), sum, na.rm=T)
或者
sum1 <- aggregate(case$d, list(case$a), sum, na.rm=T)
na.rm=T,消除缺失值NA带来的影响,若na.rm=F,存在缺失NA的时候,无法求和。同理对均值,将函数中的sum换成mean。
(2)根据多列对一列求和:根据a、b,对d求和
sum2 <- aggregate(case$d, case[,c("a", "b")], sum)
(3)根据一列对多列求和:根据a,对d、e求和
sum3 <- aggregate(case[,c(4,5)], list(case$a), sum)
2. dplyr包的group_by函数
根据一列对多列求和:根据a对d、e求和
data <- group_by(case, a)
sum3 <- summarise(data, d1 = sum(d, na.rm = TRUE), e1 = sum(e, na.rm = TRUE))
第一次写,免得我每次用到的时候都去翻以前的程序,神烦。
嘛,总之先这样。