Переименование столбцов в зависимости от их названия - PullRequest
1 голос
/ 13 мая 2019

Я хотел бы добавить префикс к именам столбцов моего набора данных, только если они уже начинаются с определенной строки, и я хотел бы сделать это (если это возможно), используя конвейер dplyr.

Используя набор данных iris в качестве игрушечного примера, я смог получить ожидаемый результат с помощью базы R (с довольно громоздкой строкой кода):

data("iris")
colnames(iris)[startsWith(colnames(iris), "Sepal")] <- paste0("YAY_", colnames(iris)[startsWith(colnames(iris), "Sepal")])
head(iris)
  YAY_Sepal.Length YAY_Sepal.Width Petal.Length Petal.Width Species
1              5.1             3.5          1.4         0.2  setosa
2              4.9             3.0          1.4         0.2  setosa
3              4.7             3.2          1.3         0.2  setosa
4              4.6             3.1          1.5         0.2  setosa
5              5.0             3.6          1.4         0.2  setosa
6              5.4             3.9          1.7         0.4  setosa

В этом примерепрефикс YAY_ добавлен ко всем именам столбцов, начиная с Sepal.Есть ли способ получить тот же результат с помощью dplyr команда / конвейер?

1 Ответ

3 голосов
/ 13 мая 2019

Опция будет rename_at

library(tidyverse)
iris %>% 
   rename_at(vars(starts_with("Sepal")), ~ str_c("YAY_", .)) 
#   YAY_Sepal.Length YAY_Sepal.Width Petal.Length Petal.Width Species
#1              5.1             3.5          1.4         0.2  setosa
#2              4.9             3.0          1.4         0.2  setosa
#3              4.7             3.2          1.3         0.2  setosa
#4              4.6             3.1          1.5         0.2  setosa
#5              5.0             3.6          1.4         0.2  setosa
#6              5.4             3.9          1.7         0.4  setosa
# ...
...