我正在使用ifelse编写文件:
ifelse("out.csv" %in% list.files(),
write.table(summary, "out.csv", sep=",", col.names=FALSE, row.names=FALSE, append=TRUE),
write.table(summary, "out.csv", sep=",", row.names=FALSE)
)
它似乎工作正常,但引发错误:替换长度为零
使用此代码或更好的方法做任何风险?
由于
答案 0 :(得分:2)
如帮助中所述,无论条件的值如何,ifelse
都会评估两个的true和false参数。你想要的是一个简单的if
。
if("out.csv" %in% list.files()) {
write.table(summary, "out.csv", sep=",", row.names=FALSE,
col.names=FALSE, append=TRUE)
} else {
write.table(summary, "out.csv", sep=",", row.names=FALSE)
}