我想在do.call
中將參數(stringsAsFactors=FALSE
)傳遞給rbind
。但下面不工作:如何將額外參數傳遞給R中的do.call函數參數
data <- do.call(rbind,
strsplit(readLines("/home/jianfezhang/adoption.txt"), split="\t#\t"),
args=list(stringsAsFactors=FALSE))
我想在do.call
中將參數(stringsAsFactors=FALSE
)傳遞給rbind
。但下面不工作:如何將額外參數傳遞給R中的do.call函數參數
data <- do.call(rbind,
strsplit(readLines("/home/jianfezhang/adoption.txt"), split="\t#\t"),
args=list(stringsAsFactors=FALSE))
do.call(rbind.data.frame, c(list(iris), list(iris), stringsAsFactors=FALSE))
Concat的兩個列表將是我的答案,如果它不是一個事實,即rbind
不知道該怎麼做stringsAsFactors
(但cbind.data.frame
會)。
strsplit
的輸出大概是一個向量列表,在這種情況下rbind
創建一個矩陣。您可以將這個矩陣轉換爲data.frame時或者指定stringsAsFactors
,
data.frame(do.call(rbind, list(1:10, letters[1:10])), stringsAsFactors=FALSE)
我不知道,如果你的函數調用是有效的,但試試這個:
data <- do.call(rbind,
c(strsplit(readLines("/home/jianfezhang/adoption.txt"),split="\t#\t"),
list(stringsAsFactors=FALSE))
,你需要通過一個列表傳遞所有參數do.call
。 您可以通過c
> c(list(1, 2), list(3, 4))
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4
,您可以設置stringsAsFactors
到FALSE
全球使用options
:
options(stringsAsFactors=FALSE)
在腳本的頂部設置,這將強制執行這整個腳本。您甚至可以添加到.Rprofile
爲您打開的所有R會話設置此選項。
rbind只有deparse.level(不是stringsAsFactors)參數。 – 2012-04-12 08:27:01
如何看待您的數據? - 請不要有敏感信息,但是一個最小可重現的例子(例如'dput(readLines(「/ home/jianfezhang/adoption.txt」,n = 5))') – BenBarnes 2012-04-12 08:36:59