考虑以下两个命令:
> write.csv(irfilt,'foo.bar',row.names=FALSE)
#works fine but:
> write.csv(irfilt,'foo.bar',row.n=FALSE)
Error in write.table(irfilt, "foo.bar", row.n = FALSE, col.names = NA, :
'col.names = NA' makes no sense when 'row.names = FALSE'
我原本希望row.n
自动扩展为row.names
,但显然没有发生。 write.table
的任何其他允许参数都不会与row.names
混淆。有谁知道造成这种误解的原因是什么?我认为这可能与write.csv
没有命名参数的事实有关,但似乎很奇怪我不会得到关于未知参数的错误消息,而不是错误解释的arg。
答案 0 :(得分:4)
write.csv
内没有任何partial argument matching,因为write.csv
的唯一参数是...
。所以write.csv
试图操纵你的电话失败了:
rn <- eval.parent(Call$row.names)
Call$col.names <- if (is.logical(rn) && !rn) TRUE else NA
在row.n
的来电中,row.names
与write.table
匹配,但write.table
生成的write.csv
来电是:
write.table(irfilt, "foo.bar", row.n = FALSE, col.names = NA,
sep = ",", dec = ".", qmethod = "double")
这就是为什么您在col.names = NA
时收到row.names = FALSE
的错误。