r - 多重逻辑在 SpatialPolygonsDataFrame 中的哪一行
问题描述
我有一个 SpatialPolygonsDataFrame,其中有 3 个岛。在这些岛屿上,有命名的位置,但岛屿之间的名称并不是唯一的。我找到了一种方法来确定在各个岛之间复制了哪些名称,但我无法返回它们对应的行。理想情况下,我会找到一种访问这些行的方法,以便我可以修改位置名称以创建在岛屿之间唯一的名称。使用来自 sp 的 Meuse 数据集我想出了这个
library(sp)
data("meuse")
coordinates(meuse) <- ~ x + y
str(meuse)
a <- meuse[meuse$lime == "0" && meuse$landuse == "Ah",]
dim(a)
subset(meuse, lime == "1")
的返回a
值为 0,但是当您查看最后一个子集行时,显然有符合该条件的行。关于我在这里缺少什么或我应该做什么的任何建议?
解决方案
问题&&
出在
a <- meuse[meuse$lime == "0" && meuse$landuse == "Ah",]
正如文件所说,
& 和 && 表示逻辑 AND 和 | 和 || 表示逻辑或。较短的形式执行元素比较的方式与算术运算符大致相同。较长的形式从左到右评估,仅检查每个向量的第一个元素。
例如,
c(TRUE, TRUE) && c(FALSE, TRUE)
# [1] FALSE
c(TRUE, TRUE) & c(FALSE, TRUE)
# [1] FALSE TRUE
所以,相反,你想要
a <- meuse[meuse$lime == "0" & meuse$landuse == "Ah",]
dim(a)
# [1] 31 12
推荐阅读
- python - 如何从不同的组中获得相似的分布?
- php - 一般错误:laravel 迁移 php 中的 1215
- javascript - 如何动态构造对象路径
- ios - 无法识别多个用户的生物识别(Touch ID/Face ID)API 有什么用?
- java - 如何在断言 Selenium getCssValue("background") 返回的背景颜色 rgb(255,255,255) 时将#ffffff 转换为 #fff 或 #fff 转换为 #ffffff
- c# - 简单的空检查+属性访问
- c - Zlib nodejs错误:存储的块长度无效
- javascript - 如何在没有 jQuery 的情况下在模态中创建平滑滚动到给定 id 的元素
- sharepoint - 如何使用 Microsoft Graph 搜索所有网站?
- azure-cosmosdb - Order By ASC 与 DESC 在性能上的巨大差异