2014-03-26 52 views
0

串/矢量I具有看起來像這樣的函數:獲取的數據幀的一個柱,使用中的R

foo <- function(dataframe, param) 
{ 
    print(dataframe$param); 
} 

的「參數」的說法是列名的載體(作爲字符串)我將傳遞給該函數的相同data.frame

「DF」 說是這樣的:

a b 
1 2 
3 4 
5 6 

而且,我調用函數

foo(df, 'a') 

我得到了一些錯誤。我怎樣才能使用字符串文字來獲取數據框的列?

我是R新手,並試圖尋找解決方案。試過toStringdf$as.name(param)但我得到錯誤。

希望我已經清楚我的問題。

回答

2

可以使用[提取列

print(dataframe[,param]) 
+0

非常感謝! –

+0

@ user3462769,另外,你也可以使用'drop = FALSE'。 –

1

避開函數體內的$運營商,採用矢量運算([),而不是訪問列。此外,return是「打印」函數結果的更普遍接受的方式。分號是不必要的。

> foo <- function(dataframe, param) 
    { 
     return(dataframe[, param]) 
    } 
> foo(d, "a") 
## [1] 1 3 5 
> foo(d, "b") 
## [1] 2 4 6 
+0

太棒了!謝謝! –

相關問題