【发布时间】:2019-08-28 21:03:06
【问题描述】:
我正在处理从地理数据库中提取的要素类数据集,该数据集已过滤到我感兴趣的区域并与 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```
【问题讨论】:
-
将
sp对象转换为sf对象然后使用dplyr::select可能更容易。 -
由于您没有分享可重现的示例,我无能为力。
-
为了访问数据框,您可以使用
bfcln@data。