R выбрать столбец фрейма данных по имени - PullRequest
0 голосов
/ 28 января 2019

Мне известно о выборе столбца фрейма данных с использованием data$column.Мой вопрос - есть ли способ сделать это динамически, когда я создаю функцию и передаю данные, columnName в качестве параметра и получаю результат обратно

fnGetColumnData (data, columnName) {
   data$columnName
}

выше, не работает при инкапсуляции кода в функции,Однако если я напишу data$"columnName", то это сработает.Есть ли способ заключить это в капсулу?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

С dplyr и rlang:

library(dplyr)
library(rlang)

fnGetColumnData = function(data, columnName){
  colname_quo = enquo(columnName)
  pull(data, !!colname_quo)
}

Выход:

> fnGetColumnData(mtcars, "cyl")
 [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4

> fnGetColumnData(mtcars, cyl)
 [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
0 голосов
/ 28 января 2019

Попробуйте это:

select_col<-function(df,colname){
 colname<-deparse(substitute(colname))
  df[colname]
}
select_col(iris,Species)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...