выбрать и переименовать сохраненную в переменной

У меня есть несколько похожих фреймов данных со многими общими столбцами. Я хотел бы выбрать и переименовать подмножество этих столбцов из любой таблицы.

library(tidyverse)
mtcars %>% 
select(my_mpg = mpg, 
       cylinders = cyl,
       gear)

Можно ли сделать что-то вроде

my_select_rename <- c("my_mpg"="mpg","cylinders"="cyl","gear")

mtcars %>% 
   select_(.dots = my_select_rename)

но вместо этого использовать tidyeval framework?


person Rickard    schedule 13.07.2017    source источник
comment
Вы были бы открыты для базового подхода R?   -  person Mike H.    schedule 13.07.2017
comment
Я бы предпочел решение, похожее на старое стандартное оценочное решение, но с новой версией dplyr.   -  person Rickard    schedule 13.07.2017
comment
Здесь дан ответ: stackoverflow.com/questions/44984428/   -  person Lionel Henry    schedule 13.07.2017


Ответы (2)


Я думаю, вы хотите:

my_select <- c("mpg","cyl","gear")
my_select_rename <- c("my_mpg","cylinders","gear")

mtcars %>% 
   select_at(vars(my_select)) %>%
   setNames(., my_select_rename)

                    my_mpg cylinders gear
Mazda RX4             21.0         6    4
Mazda RX4 Wag         21.0         6    4
Datsun 710            22.8         4    4
Hornet 4 Drive        21.4         6    3
Hornet Sportabout     18.7         8    3
person CPak    schedule 13.07.2017
comment
Для меня это не переименовывает переменные - person Mike H.; 13.07.2017
comment
Спасибо @Mike H. Извините, я только подумал, что он хочет выбрать столбцы по имени ... позвольте мне отредактировать свой пост. - person CPak; 13.07.2017

ответ Лайонела на этот вопрос вектором символов с использованием аккуратной семантики вычислений дает ответ

mtcars %>% 
    select(!!! rlang::syms(my_select_rename))
person Rickard    schedule 17.07.2017