计算r data.frames的平均值和标准差

时间:2017-09-13 15:44:12

标签: r

我在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}}

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"))