我的表和代码如下:
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]
答案 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