簡體   English   中英

R 使用列名字符串作為 function 參數來引用列

[英]R use column name string as a function parameter to reference column

我一直在嘗試計算 function 內的 data.frame 中的列的平均值,我傳遞了 data.frame 和要計算的列的名稱,但我無法這樣做

這是數據的一個例子

aleatorio<-rnorm(1:52)
cod_prov<-c(1:52)
datosprov<-cbind(cod_prov, aleatorio)
rm(aleatorio,cod_prov)

這是 function

prueba<-function(bbdd,varmap){
  forMap<-noquote(paste0(substitute(bbdd),"$",substitute(varmap)))
  mean(forMap)
}

 
prueba(datosprov,"positivo")

這應該適用於data.frames 正如@jay.sf 在評論中正確指出的那樣,@Otto Kässis 方法更安全,因為它適用於 data.frames 和矩陣。 如果您想對 data.frame中的select 變量使用裸名而不是字符串,則以下方法很有用。

prueba <- function(bbdd,varmap){
  mean(bbdd[[substitute(varmap)]])
}

prueba(iris, Sepal.Length)
#> [1] 5.843333

代表 package (v0.3.0) 於 2021 年 1 月 8 日創建

您可以通過df[,'colname']訪問 dataframe 中的列,即

 prueba<-function(bbdd,varmap){
   forMap<-bbdd[,varmap]
   mean(forMap)
 }

>  prueba(datosprov,"aleatorio")
[1] -0.1167871

暫無
暫無

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

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