如何根据 R 中的坐标从数据框中删除行

How to eliminate rows from a dataframe based on coordinates in R

我正在使用两个包含坐标 (x,y) 和降水值的数据框,因为我正在尝试绘制特定区域降雨量分布图。

我的数据集内容如下

head(cruproc,n=10)
        x     y     value
1  -97.75 15.75 0.1354839
2  -97.25 15.75 0.1419355
3  -96.75 15.75 0.0000000
4  -96.25 15.75 0.0000000
5  -95.75 15.75 0.1580645
6  -93.75 15.75 0.2129032
7  -93.25 15.75 0.1096774
8  -92.75 15.75 0.1419355
9  -92.25 15.75 0.4322581
10 -91.75 15.75 0.8483871
head(interp.df,n=10)
        x      y        pr
1  -97.75 -52.25 4.4805383
2  -97.25 -52.25 4.0390802
3  -97.75 -51.75 3.6501175
4  -97.25 -51.75 3.3274986
5  -97.75 -51.25 2.9044791
6  -97.25  15.75 3.0526965
7  -97.75 -49.75 2.7278418
8  -97.25 -49.75 2.8603867
9  -92.75  15.75 2.6617398
10 -93.25  15.75 2.6521587

如您所见,interp.df 中存在的许多坐标在 cruproc 中不存在,因此我试图消除 interp.df 中坐标不存在的所有行' 也出现在 cruproc.

在我提供的行示例中,仅保留 interp.df 的第 6、9、10 行,因为它们分别与另一个数据框中的第 2、8、7 行具有相同的坐标。这样输出应该是:

1  -97.25  15.75 3.0526965
2  -92.75  15.75 2.6617398
3  -93.25  15.75 2.6521587

我是 R 的新手,所以我非常感谢任何关于如何做到这一点的见解。

我们可以使用 inner_join():

return 来自 x 的所有行,其中在 y[=23= 中有 匹配的 值],以及来自 x 和 y 的所有列。如果 x 和 y 之间有多个匹配项,则匹配项的所有组合都是 returned.

https://www.rdocumentation.org/packages/dplyr/versions/0.7.8/topics/join

library(dplyr)

inner_join(interp.df, cruproc, by=c("x", "y")) %>% 
  select(-value)
       x     y       pr
1 -97.25 15.75 3.052697
2 -92.75 15.75 2.661740
3 -93.25 15.75 2.652159