假设我有一系列测量的data.tables,如下所示:
raw = rbind(
data.table(id = "first", seq = 1:100, val1 = runif(100), val2 = runif(100)),
data.table(id = "second", seq = 1:100, val1 = runif(100), val2 = runif(100))
)
带有一个伴随的data.table,它突出了感兴趣序列的部分内容。
timings = data.table(id = c("first", "first", "second"),
start = c(5, 50, 9),
end = c(10, 60, 19))
通过每个id搜索data.table的方式是什么,查找起始值和结束值之间的seq值。然后计算val1和val2的相关平均值?
这样我的结果表看起来像:
id start end mean_val1 mean_val2
1: first 5 10 0.2645239 0.02060684
2: first 50 60 0.6795851 0.90318952
3: second 9 19 0.3591886 0.26836045
虽然我知道如何通过一些循环来完成这样的事情,但那不是很好。而且我的桌子实际上相当大。
什么是data.table方法?