【发布时间】:2020-01-04 15:20:50
【问题描述】:
我在下面的代码中做错了,因为列选择似乎不是按子组。想不通。
library(data.table)
time <- c(1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3)
mass <- c(2,2,2,2,2,2,2,5,5.1,4.9,5,5,5,10,10,10)
expected_check <- c(7,7,7,7,7,7,7,6,6,6,6,6,6,2,2,1)
dt <- data.table(time, mass, expected_check)
dt[, check:= sapply(mass, function(i) length(dt[,mass] <= (i+0.5) & dt[,mass] >= (i-0.5))), by = time]
我想同时检查每个质量值,在定义的时间间隔内质量列中有多少个值。我认为 dt[,mass] 选择整个列并且不跟随最终的 by = time。 我尝试过的所有东西都遇到了同样的问题。
【问题讨论】:
-
你能检查一下你的expected_check,因为它没有在'时间'中关注组
-
我的意思是第 14 次和第 15 次观察在时间 2 也属于同一组
标签: r data.table