在許多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