我在R中有data.frame
,我想计算均值和标准偏差。 a b c a b c a b c
id1 1 2 3 4 5 6 7 8 9
id2 9 8 7 6 5 4 3 2 1
看起来像这样:
a b c
id1 4 5 6 #average of a's b's and c's for ID1
id2 . . .
我如何平均/ sd列?
即。平均值:
{{1}}
答案 0 :(得分:2)
您可以使用split.default
将数据框划分为基于列名的不同组,然后执行必要的操作。计算平均值
具有相同名称的列use this
对于标准偏差,您可以在每个子组
上使用apply
sapply(split.default(df, names(df)), function(a) apply(a, 1, sd))
# a b c
#id1 3 3 3
#id2 3 3 3
数据强>
df = structure(list(a = c(1L, 9L), b = c(2L, 8L), c = c(3L, 7L), a = c(4L,
6L), b = c(5L, 5L), c = c(6L, 4L), a = c(7L, 3L), b = c(8L, 2L
), c = c(9L, 1L)), .Names = c("a", "b", "c", "a", "b", "c", "a",
"b", "c"), class = "data.frame", row.names = c("id1", "id2"))