是否可以通過list或data.frame來提供R的sprintf(fmt,...)函數而不是單獨的向量?列表輸入到sprintf(繞過省略號...函數)
例如,我想達到的目標:
df <- data.frame(v1 = c('aa','bb','c'),
v2 = c('A', 'BB','C'),
v3 = 8:10,
stringsAsFactors = FALSE)
sprintf('x%02s%02s%02i', df[[1]], df[[2]], df[[3]])
[1] "xaa A08" "xbbBB09" "x c C10"
但有更簡潔的語法,如:
sprintf('x%02s%02s%02i', df)
Error in sprintf("x%02s%02s%02i", df) : too few arguments
在我的實際情況,我還有更多的列養活的sprintf,使得代碼醜陋。
我想更普遍的問題是如何規避省略號...
的功能。
我肯定不是第一個問這個,但我找不到在這個方向上東西..
IMO這是基本相同@Sotos的回答 – Jaap
非常有用指出如何在do.call C()多ARGS結合的功能。請參閱do.call文檔中的示例。簡潔。將使用該。謝謝 – user6105723