我有一个坐标数据帧,我在SpatialPoints中转换,注意到有些会落在太平洋和一些在大西洋。删除错误的行
所以我看着谷歌地图坐标,这样做是为了删除那些在大西洋
data_arvore<- data_arvore[which(data_arvore$longitude < -34.8),]
然后,找出哪些点是在太平洋:
data_arvore[which(data_arvore$latitude < 7 & data_arvore$longitude < -82),]
我需要这两个条件,因为如果我只使用第一个条件,它将排除巴西的所有事情,如果我只使用第二个条件,它将排除墨西哥的一些点。我得到这个打印:
3007 GB19507 5.550000 -87.03000
4085 GB943 0.000000 -99.00000
4086 GB942 0.000000 -99.00000
4087 GB940 0.000000 -99.00000
6672 GB4718 0.000000 -99.00000
7282 GB5497 0.000000 -99.00000
7283 GB5496 0.000000 -99.00000
10354 GB12229 0.000000 -99.00000
第一个数字是行号,第二个是我的代码,其次是经度和纬度。我必须排除最后7行(因为前两个是不是在海洋中,而是在一个小岛):
data_arvore2<- data_arvore[which(data_arvore$latitude != 0 & data_arvore$longitude != -99),]
但这个代码删除其纬度为0分,东经不-99 ,并指出其经度为-99和纬度是不为0的新尝试:
data_arvore2 <- data_arvore[-c(4085,4086,4087,6672,7282,7283,10354), ]
新的对象,data_arvore2比data_arvore少7行......但点在海洋仍在下降...我注意到代码删除了错误的行。然后我又开始了,但是在去除大西洋中的点之前,删除了太平洋中的行,并且它工作正常。我发现在第一次尝试时我删除了第4086行,这不是行号4086.改变操作的顺序给了我期望的结果,但是我想知道如何处理这种情况并删除正确的行......你能给我一个小费吗?
所有的选项都有效,我学到了很多关于R语法的知识! – Thai
高兴地帮助:)! –
顺便提一下,我刚刚注意到了,因为我的回答有点快,但是你不需要在第一个解决方案中的哪一个,它可以很好地给出一组布尔值而不是索引 –