如何将额外参数传递给R中do.call的函数参数
我想将参数(如何将额外参数传递给R中do.call的函数参数,r,R,我想将参数(stringsAsFactors=FALSE)传递给do.call中的rbind。但以下方法不起作用: data <- do.call(rbind, strsplit(readLines("/home/jianfezhang/adoption.txt"), split="\t#\t"), args=list(stringsAsFactors=FALSE)) data我不确定您的函数调用是否有效,但请尝试以下方法: data <
stringsAsFactors=FALSE
)传递给do.call中的rbind
。但以下方法不起作用:
data <- do.call(rbind,
strsplit(readLines("/home/jianfezhang/adoption.txt"), split="\t#\t"),
args=list(stringsAsFactors=FALSE))
data我不确定您的函数调用是否有效,但请尝试以下方法:
data <- do.call(rbind,
c(strsplit(readLines("/home/jianfezhang/adoption.txt"),split="\t#\t"),
list(stringsAsFactors=FALSE))
如果不是因为rbind
不知道如何处理stringsAsFactors
(但是cbind.data.frame
会这样做),我的答案应该是这样的
strsplit
的输出可能是一个向量列表,在这种情况下,rbind
创建一个矩阵。将此矩阵转换为data.frame时,可以指定stringsAsFactors
data.frame(do.call(rbind, list(1:10, letters[1:10])), stringsAsFactors=FALSE)
或者,您可以使用选项将stringsAsFactors
全局设置为FALSE
:
options(stringsAsFactors=FALSE)
在脚本顶部设置此选项将在整个脚本中强制执行。您甚至可以添加到.Rprofile
,为您打开的所有R会话设置此选项。rbind只有deparse.level(而不是stringsAsFactors)参数。看一看您的数据如何?-请不要提供敏感信息,但要提供一个最小的可复制示例(例如,dput(readLines(“/home/jianfezhang/adoption.txt”,n=5))
)
data.frame(do.call(rbind, list(1:10, letters[1:10])), stringsAsFactors=FALSE)
options(stringsAsFactors=FALSE)