[英]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.