计算具有不同大小的多个变量的均值

时间:2016-09-12 21:16:48

标签: r data.table mean

我的表和代码如下:

data <- data.frame(Subject = c(0,0,0,1,2,2),
                   Class = c("Apple","Apple","Apple","Orange","Orange","Orange"),
                   name = c(1,1,1,0,1,1),
                   name1 = c(0,1,1,1,1,1),
                   name2 = c(1,1,1,0,0,1))

我想找到每个类和每个主题的每个变量的平均值,并将其列为表格。例如,该表将首先具有主题的平均值; 0表示平均值为8/9,2表示平均值为5/6。第二,找出上课的意思;橙色,平均2/3。最后细分name,name1和name2的平均值。

我已经尝试了下面的代码,首先将标题存储为列表,然后按主题和类对lapply进行排序。但它没有用。

cols = c(head(data))
data[,lapply(.SD[,cols,with=FALSE],mean),by=Class|Subject]

1 个答案:

答案 0 :(得分:0)

library(reshape2)
library(dplyr)

data2 <- melt(data, c("Subject", "Class"))

data.frame(summarize(group_by(data2, Subject, Class),
                      avg_val = mean(value))) -> table_for_you