在许多R函数中,参数...
用于提供多个对象。如何在...
参数中提供list
对象?当需要'...'参数时如何使用'list'对象?
例如:
x1 <- head(iris)
x2 <- tail(iris)
rbind(x1, x2)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
#145 6.7 3.3 5.7 2.5 virginica
#146 6.7 3.0 5.2 2.3 virginica
#147 6.3 2.5 5.0 1.9 virginica
#148 6.5 3.0 5.2 2.0 virginica
#149 6.2 3.4 5.4 2.3 virginica
#150 5.9 3.0 5.1 1.8 virginica
但是假设我有一个list
的x1
和x2
数据帧。我如何在rbind
中使用list
和...
参数?
我已经试过以下,但没有成功:
rbind(list(x1, x2))
rbind(substitute(list(x1, x2))[-1])
rbind(unlist(list(x1, x2)))
在每种情况下,结果并不如从rbind(x1, x2)
。我错过了什么?
UPDATE1:
作为答案建议,do.call(rbind, list(x1, x2))
似乎在这种情况下正常工作。但是,我想知道是否可以避免do.call
机器。换句话说,是否有可能将list(x1, x2)
转换成...
正确理解它?
几乎重复:http://stackoverflow.com/q/6192138/324364 – joran
' do.call'是一个神话般的功能,当你说你想避免它没有很好的理由时,我相信你伤害了它的感觉。我也不明白你为什么认为'rbind(list)'会起作用。正如你所说,'rbind'在'...'中有几个对象。列表是单个对象。 – rawr
@rawr没有任何意图。 :)至于'list',它是几个对象的集合。我希望类似'unlist(list)'的技巧能够自动将几个嵌入对象传递给'rbind()'。 – landroni