有条件地从R中的列表中删除项目

时间:2019-11-21 15:46:05

标签: r

我知道关于从列表中删除项目有很多类似的问题,但是我一直无法解决我的问题-感谢您的帮助。

简而言之,我想删除任何值大于-74的条目(行)。

list(structure(c(40.7571907043457, 40.7601699829102, 40.761848449707, 
40.7660789489746, -73.9972381591797, -74.0038146972656, -74.0072479248047, 
-74.0172576904297), .Dim = c(4L, 2L), .Dimnames = list(c("1", 
"2", "3", "4"), c("lat", "lon"))), structure(c(40.7582893371582, 
40.760498046875, 40.7620582580566, 40.7662887573242, -73.9975280761719, 
-74.0031967163086, -74.0070190429688, -74.0170593261719), .Dim = c(4L, 
2L), .Dimnames = list(c("1", "2", "3", "4"), c("lat", "lon"))))

非常感谢。

1 个答案:

答案 0 :(得分:2)

如果您只需要查看带有负值的lon列,那么

lapply(your_list, function(i)i[i[,2] <= -74,])

如果您要检查两列,

lapply(your_list, function(i)i[rowSums(i<=-74) > 0, , drop = FALSE])

两者给出相同的结果,

[[1]]
       lat       lon
2 40.76017 -74.00381
3 40.76185 -74.00725
4 40.76608 -74.01726

[[2]]
       lat       lon
2 40.76050 -74.00320
3 40.76206 -74.00702
4 40.76629 -74.01706
相关问题