我有一个数据框,它是列表的列表-风暴列表,风暴的每个点都是一行。一栏是风暴中的每个点是否都在陆地上。我能够确定哪些风暴造成了登陆,但是我不知道如何仅选择那些风暴,即仅创建那些已经登陆的风暴的新数据框。
此代码让我知道暴风雨是否已经登陆(通过按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引发了有关回收的问题。
答案 0 :(得分:1)
也许您可以在这两个表之间做一些类似INNER JOIN的事情:
merge(all_tracks,land_tracks[which(land_tracks$V1== TRUE)], by = 'ID')