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 行的平均值。
解决方案
这是一个选项:
x[, mean(a), cumsum(replace(rep(0, nrow(x)), pos, 1L))]
输出:
cumsum V1
1: 0 1.5
2: 1 3.5
3: 2 6.5
推荐阅读
- c - 字符串列表 - 确定我哪里出错了
- java - 在 selenium java 上读取 text/javascript 中的 var
- html - asp.net mvc 5 表单帖子不起作用
- c - 如何在没有内存分配的情况下将指针从 CUDA 返回到 C?
- java - 在 IntelliJ 中使用 protobufs 构建 gradle 时出错
- xamarin.forms - 为什么我的 ListView 中只显示一项?
- r - 根据列名和行名替换矩阵元素
- javascript - 将父 URL 传递给 iframe 中的表单字段
- java - 动态报告 XLS、CSV
- javascript - Javascript 根据特定的类属性创建对象