我想使用rbind合併一些數據幀。如果我叫rbind directy沒有問題:使用do.call時丟失數據幀
> test <- rbind(x)
> is.data.frame(x)
[1] TRUE
但是,如果我用do.call
我跑到哪裏我的性格列倒塌問題,數據幀轉換爲矩陣。
>test <- do.call("rbind", x)
> is.data.frame(test)
[1] FALSE
根據文獻記錄,我嘗試了add stringsAsFactors = FALSE
但行爲沒有變化。我的數據表是這個樣子:
ID sequence descriptor
1 aaacccttt g12
2 actttgtgt e34
3 tttgggctc b12
4 ccgcgcgcg c12
… … ...
和rbind輸出看起來是這樣,但do.call("rbind", x)
輸出顯示如下,其中序列列不再是一個性格:
ID 363 426 91
Sequence 98 353 100
descriptor g12 b12 c12
我想使用do.call是因爲我正在循環一組數據框以便使用下面的腳本來合併它們。另一個有用的答案可能就如何合併多個數據框並在循環中調用它們時提供了一種替代解決方案。
stringsAsFactors = FALSE
dfs <- as.list(ls(pattern="Data_"))
for (i in 1:length(dfs)) {
x <- get(as.character(dfs[i]))
AllData <- do.call("rbind", x)
}
dfs
是我的工作環境dataframes的名單,我得到使用get
謝謝你實際的數據幀。
這是一個很棒的答案。 – zach