我使用R相当新,但我在尝试做的事情中遇到了很多这个问题。我想将函数应用于data.frame中的特定列,具体取决于传递给包含函数的值。它看起来像这样:
myfunction <- function(var) {
< do something to mydata$var >
}
var
可以是mydata
(data.frame)中任何列的名称。
问题在于代码的dataframe$var
部分。我无法弄清楚如何动态调用这样的变量名。 dataframe[,var]
似乎不起作用,dataframe[,get(var)]
或dataframe[,eval(var)]
也不起作用。
我也想使用同样的理论来遍历mydata
中特定列的向量:
varlist <- c("var1","var2","var3")
for (var in varlist) {
< do something to mydata$var >
}
但同样,mydata$var
就是问题所在。
任何建议或帮助都将不胜感激!
答案 0 :(得分:0)
试试这个:
test_frame = data.frame("a"=1:4,"b"=2:5,"c"=3:6)
varlist = c("a","c")
myfunction = function(var_name){
return(mean(test_frame[,var_name]))
}
for (var in varlist){
myfunction(var)
}
或以更清洁的方式......
sapply(varlist,myfunction)
a c
2.5 4.5