我想通过使用行号或带位置的向量来计算 data.table 中列的平均值。
这是一个示例数据和一个位置向量:
x <- data.table(a = c(1,2,3,4,5,6,7,8))
pos <- c(3,5)
我试过:
x[mean(a), by = pos]
所以我想要第 1:2、3:4 和 5:8 行的平均值。
最佳答案
您可以使用 findInterval
/cut
根据 pos
创建组:
library(data.table)
x[, mean(a), findInterval(a, pos)]
# findInterval V1
#1: 0 1.5
#2: 1 3.5
#3: 2 6.5
关于r - 在位置拆分 data.table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62081220/