У меня очень похожий подход к Андерсу выше, но я использовал функцию mutate
из dplyr
.
df <- data.frame(ID = c("AK_Town_0233470", "CA_Town_0603330", "CA_Town_0616462",
"CA_Town_0623042", "CA_Town_0625338"),
Town = c("Hooper Bay", "Avilla Beach", "Corte Madera", "Eureka", "Foster City"))
df %>%
mutate(New_ID = paste0(Town, ", ", str_extract(df$ID, pattern = "[[:alpha:]][[:alpha:]]")))
Это результат:
ID Town New_ID
1 AK_Town_0233470 Hooper Bay Hooper Bay, AK
2 CA_Town_0603330 Avilla Beach Avilla Beach, CA
3 CA_Town_0616462 Corte Madera Corte Madera, CA
4 CA_Town_0623042 Eureka Eureka, CA
5 CA_Town_0625338 Foster City Foster City, CA
Я использовал функцию str_extract
из пакета stringr
(также внутри tidyverse
)вместо substr()
от базы R, но это тоже будет работать.
df %>%
mutate(New_ID = paste0(Town, ", ", substr(df$ID, 1, 2)))