Можно ли ссылаться на имя столбца со строкой? - PullRequest
0 голосов
/ 20 апреля 2020

Я уже рассматривал этот вопрос раньше, но не могу найти решение моей конкретной c проблемы.

По сути, очень легко преобразовать наборы данных, написав что-то вроде этого -

data %>% transform(x1 = ifelse(x1 == 1, x1 + 50, x1))

Но у меня возникает проблема, когда я пытаюсь заменить x1 строкой "x1"

data %>% transform("x1" = ifelse("x1" == 1, "x1" + 50, "x1"))

Я пытался использовать "get", например, get ("x1"), но выдается ошибка.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 20 апреля 2020

С dplyr, используйте mutate

library(dplyr)
data %>% 
     mutate(x1 = ifelse(x1 == 1, x1 + 50, x1))

Если мы передадим символьную строку, либо используйте mutate_at

data %>%
   mutate_at(vars('x1'), ~ ifelse( . == 1, . + 50, .))

, либо конвертируйте в sym Бол и оценить (!!)

data %>%
    mutate(!! "x1" := ifelse(!! rlang::sym("x1") == 1, 
          !! rlang::sym("x1") + 50, !!rlang::sym("x1")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...