I have retrieved the rnaturalearth data as sf class, and I am trying to rename one of the columns from "iso_a2" to "countryCode" to more easily join it with another dataset of mine. When I try to rename it using rename()
, I am left with this error:
library(rnaturalearth)
library(dplyr)
baseBorderMap <-
ne_countries(returnclass = 'sf')
baseBorderMap <- rename(baseBorderMap, "countryCode" = "iso_a2")
Error in rename.sf(baseBorderMap, countryCode = "iso_a2") : internal error: can't find
agr
columns`
I was hoping to be able to join these two datasets through a renamed column, but because I am getting an error when trying to rename a column I know exists, I am unable to.
Why am I getting this error when I know that there is a column in the rnaturalearth
data named "iso_a2"?
It's a known bug with renaming columns in some sf objects. And that rnaturalearth
dataset has more than a few 'foibles' to contend with. A workaround is to select()
all the columns first:
library(rnaturalearth)
library(dplyr)
baseBorderMap <- ne_countries(returnclass = 'sf') %>%
select(featurecla:geometry) %>%
rename(countryCode = iso_a2)
select(baseBorderMap, countryCode)
# Simple feature collection with 177 features and 1 field
# Geometry type: MULTIPOLYGON
# Dimension: XY
# Bounding box: xmin: -180 ymin: -90 xmax: 180 ymax: 83.64513
# Geodetic CRS: WGS 84
# First 10 features:
# countryCode geometry
# 1 FJ MULTIPOLYGON (((180 -16.067...
# 2 TZ MULTIPOLYGON (((33.90371 -0...
# 3 EH MULTIPOLYGON (((-8.66559 27...
# 4 CA MULTIPOLYGON (((-122.84 49,...
# 5 US MULTIPOLYGON (((-122.84 49,...
# 6 KZ MULTIPOLYGON (((87.35997 49...
# 7 UZ MULTIPOLYGON (((55.96819 41...
# 8 PG MULTIPOLYGON (((141.0002 -2...
# 9 ID MULTIPOLYGON (((141.0002 -2...
# 10 AR MULTIPOLYGON (((-68.63401 -...