r - 在位置拆分 data.table

标签 r data.table

我想通过使用行号或带位置的向量来计算 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/

相关文章:

r - 如何使用多个条件计算 base R 或 dplyr 中的元素分组?

r - 复特征向量

r - 用复位计数矩阵中的列数据

r - 在不同层使用 ggplot2 绘制多条 ROC 曲线

r - 逐步找到R中列表中最频繁的项目

r - 使用 data.table [R] 查找组的模态值出现次数

r - R中的贪婪优化

使用带有行名和列名的 fread 读取文件

r - 当measure.vars包含不在data.table中的变量时,melt.data.table可能会崩溃

R中使用data.table包进行SQL的 `case when ...`代码转换