R如何计算数据帧中某些列的标准差

时间:2015-02-26 18:04:39

标签: r function statistics

我是使用R的初学者,我目前难以尝试执行以下操作: 我有一个120行和265列的数据框。第5列至第265列的单元格包含数值。对于每一行,我想计算从第5列到第265列(第5列,第7列,第9列等)的每个奇数列的值的标准偏差,并将其写入相应行的第266行。 我现在用应用函数和for循环两个小时,但我得到的是我无法理解的错误消息。 我非常感谢你对此事的任何帮助。 问候。

1 个答案:

答案 0 :(得分:4)

你可以尝试

df$newCol <- apply(df[seq(5, ncol(df), by=2)], 1, sd)

或使用rowSds

中的matrixStats
library(matrixStats)
df$newCol <-  rowSds(as.matrix(df[seq(5, ncol(df), by=2)]))

或者@DavidArenburg评论,您可以查看矢量化RowSD

数据

set.seed(253)
df <- cbind(as.data.frame(matrix(sample(letters, 120*4, replace=TRUE),
  ncol=4), stringsAsFactors=FALSE), matrix(sample(1:50, 120*261, 
 replace=TRUE), ncol=261))