【发布时间】:2015-07-29 20:52:39
【问题描述】:
我有一个由一系列成对列组成的数据框。这是一个小例子。
df1 <- as.data.frame(matrix(sample(0:1000, 36*10, replace=TRUE), ncol=1))
df2 <- as.data.frame(rep(1:12, each=30))
df3 <- as.data.frame(matrix(sample(0:500, 36*10, replace=TRUE), ncol=1))
df4 <- as.data.frame(c(rep(5:12, each=30),rep(1:4, each=30)))
df5 <- as.data.frame(matrix(sample(0:200, 36*10, replace=TRUE), ncol=1))
df6 <- as.data.frame(c(rep(8:12, each=30),rep(1:7, each=30)))
Example <- cbind(df1,df2,df3,df4,df5,df6)
我想要做的是根据相邻列中的值找到奇数列 (df1,df3,df5) 的平均值,因此在示例中,我将为之间的每个值设置三组平均值1 和 12。我已经设法为一对特定的列应用了一个函数...
Example_two <- cbind(df1,df2)
colnames (Example_two) <- c("x","y")
tapply(Example_two$x, Example_two$y, mean)
但是,我将要查看的数据框会大得多,因此某种形式的应用函数对于在每个配对集上迭代执行此操作是理想的。我发现了一个类似的问题Is there a R function that applies a function to each pair of columns?,但我似乎无法将其应用于我自己的数据集。
任何帮助将不胜感激,在此先感谢您。
【问题讨论】:
-
您需要将平均值(汇总)作为单独的数据集还是作为示例中的列?
-
最好是单独的数据集,谢谢。
标签: r apply mean sapply tapply