R使用列名字符串作为函数参数来引用列

R使用列名字符串作为函数参数来引用列,r,R,我一直在尝试计算函数中data.frame中的一列的平均值,我传递了data.frame和要计算的列的名称,但我不能这样做 这是数据的一个示例 aleatorio<-rnorm(1:52) cod_prov<-c(1:52) datosprov<-cbind(cod_prov, aleatorio) rm(aleatorio,cod_prov) aleatorio这应该适用于data.frames。正如@jay.sf在评论中正确指出的那样,@Otto Kässis方法更安全,

我一直在尝试计算函数中data.frame中的一列的平均值,我传递了data.frame和要计算的列的名称,但我不能这样做

这是数据的一个示例

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

aleatorio这应该适用于
data.frames
。正如@jay.sf在评论中正确指出的那样,@Otto Kässis方法更安全,因为它适用于data.frames和matrix。如果要使用裸名称而不是字符串来选择data.frame中的变量,下面的方法非常有用

prueba[1]5.843333

由(v0.3.0)于2021-01-08创建

这适用于
数据帧
。正如@jay.sf在评论中正确指出的那样,@Otto Kässis方法更安全,因为它适用于data.frames和matrix。如果要使用裸名称而不是字符串来选择data.frame中的变量,下面的方法非常有用

prueba[1]5.843333

由(v0.3.0)于2021-01-08创建,您可以通过
df[,'colname']
访问数据帧中的列,即

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

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

prueba您可以通过
df[,'colname']
访问数据帧中的列,即

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

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