首页 > 解决方案 > 在 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```

标签: rdplyrsp

解决方案


要重命名空间文件,您需要安装包spdplyr

与 dplyr 类似,您可以这样做:

df <- df %>% 

重命名(新名称 = 旧名称)


推荐阅读