r - 在 SpatialPointsDataFrame 中选择和重命名列
问题描述
我正在使用从地理数据库中提取的要素类数据集,该数据集已过滤到我感兴趣的区域并与 SpatialPointsDataFrame 相交。为了使用 WriteOGR 将其导出到 shapefile,我需要格式化属性名称,并且我还只想选择要在最终 shapefile 中导出的特定列。使用标准选择或基本 R 转租技术时,我遇到了很多错误。由于某种原因,当我尝试选择时,R 似乎无法识别列名。我尝试了很多不同的方法,但无法弄清楚我哪里出错了。
```bfcln%>%
+ select(STATEFP,DP2_HC03_V, DP2_HC03V.1)
Error in tolower(use) : object 'STATEFP' not found```
# create a spatial join between bf_pop and or_acs
#check CRS
```crsbf <- bf_pop@proj4string```
# change acs CRS to match bf_pop
```oracs_reprj <- spTransform(or_acs, crsbf)```
# join by spatial attributes
```bf_int <- raster::intersect(bf_pop, oracs_reprj)```
#truncate field names to 10 characters for ESRI formatting
```names(bf_int) <- strtrim(names(bf_int),10)```
#remove duplicates from attribute table
```bfcln <- bf_int[which(!duplicated(bf_int$id)), ]```
在多次使用 select() 方法失败后,我尝试重命名列。
# rename variables of interest
```bfcln1 <-bfcln%>%
select(DP2_HC03_V)%>%
rename(DP2_HC03_V=pcntunmar)%>%
select(DP2_HC03_V.1)%>%
rename(DP2_HC03_V.1=pcntirsh)
Error in tolower(use) : object 'DP2_HC03_V' not found```
解决方案
要重命名空间文件,您需要安装包spdplyr。
与 dplyr 类似,您可以这样做:
df <- df %>%
重命名(新名称 = 旧名称)
推荐阅读
- javascript - Angular Firestore 根据返回的布尔值显示一个按钮,用于检查 Firestore 文档是否存在
- sql - 如何创建连接两个表的视图以显示一个表中的哪些实体未连接到另一个表中的实体?
- symfony - 如何在 Symfony3.4 中通过用户名使用 Lock 组件
- qt - 如何测量 QML 文件中的导入时间?
- amazon-ec2 - 如何调用具有变量的资源名称
- javascript - 无法在表格行上设置焦点
- python - 检查 2 个值是否在嵌套列表中并打印列表的值
- typescript - 是否可以从数组创建打字稿类型?
- spring - 使用分区器 Spring Batch 限制线程
- javascript - 尝试使用 Javascript 获取 Outlook 日历事件,收到 401 Unauthorized 错误?