【发布时间】:2019-04-29 16:52:00
【问题描述】:
我有一个数据表,A 喜欢:
year location sigma_NN_1 sigma_NN_2 sigma_NN_3
2076 43.59375_-116.78125 1.4681173 1.664289 1.735974
2077 43.59375_-116.78125 1.3798515 1.550524 1.551269
2078 43.59375_-116.78125 0.7934367 1.064248 1.177981
2079 43.59375_-116.78125 1.8235574 1.991018 2.288402
2080 43.59375_-116.78125 2.5560329 2.578093 2.589334
我想用它来屏蔽另一个数据表,其中 sigmas 的值低于阈值,比如说 2。假设我的第二个数据表是 B
year location location_NN_1 location_NN_2 location_NN_3
2076 43.59375_-116.78125 41.15625_-90.65625 41.21875_-90.65625 41.15625_-90.65625
2077 43.59375_-116.78125 43.34375_-78.15625 43.34375_-78.21875 43.28125_-78.15625
2078 43.59375_-116.78125 41.34375_-90.78125 41.21875_-90.65625 41.53125_-73.96875
2079 43.59375_-116.78125 43.53125_-116.78125 41.34375_-90.78125 41.71875_-74.15625
2080 43.59375_-116.78125 41.34375_-90.78125 41.96875_-86.21875 41.21875_-90.65625
所以,我想要B[A<2] 之类的东西,但显然这不起作用,否则我不会在这里。
有什么建议吗?
预期输出:
输出
year location location_NN_1 location_NN_2 location_NN_3
2076 43.59375_-116.78125 41.15625_-90.65625 41.21875_-90.65625 41.15625_-90.65625
2077 43.59375_-116.78125 43.34375_-78.15625 43.34375_-78.21875 43.28125_-78.15625
2078 43.59375_-116.78125 41.34375_-90.78125 41.21875_-90.65625 41.53125_-73.96875
2079 43.59375_-116.78125 43.53125_-116.78125 41.34375_-90.78125 NA
2080 43.59375_-116.78125 NA NA NA
目标是找到数据表A中对应sigma小于2的位置。
【问题讨论】:
-
你可能需要
i1 <- setDT(A)[, Reduce('&', lapply(.SD,, 2)), .SDcols = 3:5]; B[i1]