簡體   English   中英

R按名稱選擇數據幀列

[英]R select column of data frame by name

我知道使用data$column選擇一列數據框。 我的問題 - 有沒有辦法動態地創建一個函數並傳遞數據, columnName作為參數並返回結果

fnGetColumnData (data, columnName) {
   data$columnName
}

將代碼封裝在函數中時,上面的代碼不起作用。 但是,如果我寫data$"columnName"那么它的工作原理。 有沒有辦法封裝這個?

嘗試這個:

select_col<-function(df,colname){
 colname<-deparse(substitute(colname))
  df[colname]
}
select_col(iris,Species)

使用dplyrrlang

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM