【问题标题】:Selecting and renaming columns in SpatialPointsDataFrame在 SpatialPointsDataFrame 中选择和重命名列
【发布时间】: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

标签: r dplyr sp


【解决方案1】:

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

与 dplyr 类似,您会这样做:

df <- df %>% 

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

【讨论】:

    猜你喜欢
    • 2019-12-16
    • 1970-01-01
    • 2018-01-08
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多