主要用于stdevs时有一些麻烦,并且可能还有最佳方法解决方案。计算列平均值和标准偏差组
dat <- data.frame(matrix(rnorm(16*100), ncol=100)) # data
在这个例子中,我有100列的数据集,我需要得到各行的手段和stdevs在25个样品
组我第一次发现,将做单独
代码as.data.frame(rowMeans(dat[,1:25])) # mean of columns 1:25
as.data.frame(apply(dat[,1:25],1,mean)) # mean of columns 1:25
as.data.frame(apply(dat[,1:25],1,sd)) # sd of columns 1:25
起初我用rowMeans并通过下面的循环做这项工作:
dat.means <- list() # create empty list for means
# mean of every 25 cols
count <- 1
for(i in seq(1,length(dat),25)){
dat.means[[count]] <- cbind(rowMeans(as.data.frame(dat[,i:i+24])))
count=count+1
}
在这一点上,我找不到相当于rowMeans来计算标准偏差,所以回溯到尝试使用apply。然而,我如何以这种方式使用它的知识却非常缺乏,而且在这一点上我只得到了错误。
for(i in seq(1,length(dat),25)){
dat.means[[count]] <- cbind(apply(dat[,i:i+24],1,mean))
count=count+1
}
#Error in apply(dat[, i:i + 24], 1, mean) :
# dim(X) must have a positive length
我已经尝试了上述循环的一些其他迭代,但我仍然得到张贴错误。
我也有一种感觉,循环可能不是最好的方法,但是我很茫然。感谢任何帮助。
针对疑似重复问题here 计算SD和与NA值的数据帧的意思是不是这里的问题,问题是如何在一个更大的数据帧在列组有效应用的功能
[手段并且与NA值的数据帧的SD为列(的可能的复制http://stackoverflow.com/questions/20794284/means-and-sd-for-columns -in-a-dataframe-with-na-values) –