【发布时间】:2017-10-21 09:05:39
【问题描述】:
是否有可能以列表或 data.frame 而不是单独的向量来提供 R 的 sprintf(fmt, ...) 函数?
例如,我想要达到的目标:
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,这使得代码很难看。
我想更普遍的问题是如何规避省略号 ... 函数。
我确定不是第一个问这个问题的人,但我在这个方向上找不到任何东西..
【问题讨论】: