2015-06-01 101 views
0

我想知道是否有人知道或可以幫助我找到所有magrittr別名函數的正式參數名稱。例如,我知道'set_colnames'的參數是'value'。magrittr別名的正式參數名稱

df <- data.frame(1:3, 4:6, 7:9) %>% 
    set_colnames(value = c('a', 'b', 'c') 

通常情況下,我只是傳遞參數在無名,但最近我一直在試圖讓我的代碼儘可能穩定,它是當你試圖使用一個應用函數內這些別名也很有幫助(或llply在我的情況)。我遇到的問題是我有一個類似的DF的列表,我想從每個列中提取相同的列,但仍保留列表格式。

df_list <- list(data.frame('a' = 1:3, 'b' = 4:6), 
       data.frame('a' = 7:9, 'b' = 10:12)) 

我想要做的是一樣的東西

df_b <- df_list %>% 
    llply(.fun = use_series, b) 

但是,這並不工作,因爲我不知道正式名稱傳遞給「use_series」。

回答

1

use_series只是$的別名。你可以看到,沒有括號

use_series 
# .Primitive("$") 

$原始函數沒有以同樣的方式在用戶定義的函數不正規的參數名稱中輸入函數的名稱。這將是更容易在這種情況下,你通過列名作爲字符值,而不是一個符號使用extract2在這種情況下

df_b <- df_list %>% 
    llply(.fun = extract2, "b") 

注意。我learned before$是棘手的使用應用系列功能。

+0

謝謝!它非常完美!你偶然會知道是否有文檔在某處列出了具有它們的magrittr別名的所有正式參數名稱? –

+0

它們中的大多數似乎是沒有正式參數名稱的原語的別名。對於那些確實有正式參數的人,可以使用'formals()'函數來提取它們:即'formals(set_colnames)'' – MrFlick