【发布时间】:2016-04-11 17:11:16
【问题描述】:
提前道歉,因为我确定之前已经提出过这个问题,但我正在寻找一种有效的方法来最好地使用数据表包来做到这一点。
我有一个矩阵,如果可以使用包完成,它可以是一个数据表,其中包含我需要按列分组的数据,但在每组列的行中应用 mean 函数。最终结果应该是一个矩阵(或数据表),其中包含基于组平均值的列。
set.seed(123)
testMatrix <- matrix(nrow = 15, ncol = 10)
for (i in 1:nrow(testMatrix)) {
testMatrix[i,] <- runif(1)
}
我知道这些值都是相同的,但这并不重要。所以现在我需要找到各行的平均值,但对于每对列。所以最终结果应该是一个 5 列 15 行的数据表,V1、V2 和 V3、V4 之间的所有行的平均值等。第 1 列将有 15 个值,即所有行之间的平均值前两列等等。该方法将被合并到一个循环中以自动化超过 100 个数据集,因此效率很重要。
【问题讨论】:
-
这个很高效
(df1[c(F,T)] + df1[c(T,F)])/2想法来自stackoverflow.com/questions/33026944/… -
如果你想使用矩阵,这个问题涵盖了它:stackoverflow.com/q/36432686
-
该方法也适用于矩阵
(testMatrix[,c(F,T)] + testMatrix[,c(T,F)]) / 2 -
但是如果我要跨多个列应用,比如说两个以上,那么我必须为每一列写出来吗?所以我拥有的数据集实际上是 35 列,我需要按 7 分组。会是
(df1[c(F,T)] + df1[c(T,F)]) + df1[c(F,T)] + etc/7吗? @PierreLafortune -
难道没有办法使用
rowMeans或data.table中的东西吗?我听说过cut功能,但从未使用过。 @PierreLafortune
标签: r data.table grouping subset