Добавить столбец с именем столбца в качестве входной строки - PullRequest
3 голосов
/ 17 апреля 2020

Быстрый вопрос dplyr здесь. Я пытаюсь создать функцию, которая принимает любое имя столбца и добавляет столбец к кадру данных. Например:

Name               Age 
Misty              4    
Crookshanks        12
Simba              18

Теперь я хочу добавить тип столбца с помощью функции внизу:

addColumn(myDF, 'Type', 'Cat')

Name               Age       Type
Misty              4         Cat
Crookshanks        12        Cat
Simba              18        Cat

Как использовать эту функцию для приема ввода строки столбца ? Сейчас он просто пишет столбец как «столбец» вместо «тип»

addColumn <- function(df, column, value) {

  df <- df %>%
    mutate( column  = value )

  View(df)
}

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Вы должны использовать некоторые нестандартные оценки.

library(dplyr)
library(rlang)

addColumn <- function(df, column, value) {
   df %>% mutate(!!column := value )
}

addColumn(myDF, 'Type', 'Cat')

#        Name  Age Type
#1       Misty   4  Cat
#2 Crookshanks  12  Cat
#3       Simba  18  Cat
1 голос
/ 17 апреля 2020

Просто для того, чтобы предложить альтернативу, вы можете переписать свою функцию, используя старую добрую базу R, как:

addColumn <- function(df, column, value) {
  df[column]<-value
  return(df)
}

Что даст вам тот же результат:

> print(addColumn(myDF,"Type", "Cat"))
         Name Age Type
1       Misty   4  Cat
2 Crookshanks  12  Cat
3       Simba  18  Cat

Без необходимость вызова дополнительных библиотек (даже не dplyr)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...