2014-04-24 79 views
0

我對使用R相當陌生,但我在嘗試做的事情中遇到過很多問題。我想根據傳遞給包含函數的值將函數應用於data.frame中的特定列。這將是這個樣子:在if語句中使用變量名稱的向量

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

或者試圖獲得(據幀[,VAR]) – FFI

回答

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