根据组的条件从数据框中选择行

时间:2019-03-27 10:23:37

标签: r data.table

我有一个数据框,它是列表的列表-风暴列表,风暴的每个点都是一行。一栏是风暴中的每个点是否都在陆地上。我能够确定哪些风暴造成了登陆,但是我不知道如何仅选择那些风暴,即仅创建那些已经登陆的风暴的新数据框。

此代码让我知道暴风雨是否已经登陆(通过按ID分组将“区域”列(1或0)相加,如果大于1则表示已经登陆):

land_tracks <- all_tracks[, sum(inregion) > 0, by = ID]

给我:

                  ID    V1
 1: 1987051906_15933  TRUE
 2: 1987060118_16870  TRUE
 3: 1987061306_18015  TRUE
 4: 1987062100_18878  TRUE
 5: 1987062918_19507 FALSE
 6: 1987070512_20168  TRUE
 7: 1987070812_20341  TRUE
 8: 1987071218_20635  TRUE
 9: 1987071412_20762  TRUE
10: 1987071606_20881  TRUE

如何使用它遍历all_tracks以找到与ID V1 == TRUE匹配的所有行?

我经常遇到这样的问题:land_tracks有41行,all_tracks有1879行,R引发了有关回收的问题。

1 个答案:

答案 0 :(得分:1)

也许您可以在这两个表之间做一些类似INNER JOIN的事情:

merge(all_tracks,land_tracks[which(land_tracks$V1== TRUE)], by = 'ID')