我建议你稍微调整一下你的工作流程,做这样的事情:
首先将所有向量收集在一个 R 列表对象中。
仍然在 R 中,将向量列表按摩到矩阵或 data.frame 中。(一旦您提取了所有向量,并且知道最长向量的长度,这将更容易。)
write.table
只有然后通过一次调用or来写出结果表write.csv
。
这是一个例子:
## Set up your for() loop or lapply() call so that it returns a list structure
## like 'l'
l <- list(a=1:9, b=1:2, c=1:5)
## Make a matrix from the list, with shorter vectors filled out with ""s
n <- max(sapply(l, length))
ll <- lapply(l, function(X) {
c(as.character(X), rep("", times = n - length(X)))
})
out <- do.call(cbind, ll)
## Then output it however you'd like. (Here are three options.)
# write.csv(out, file="summary.csv")
# write.csv(out, file="summary.csv", quote=FALSE)
# write.table(out, file="summary.txt", row.names=FALSE, quote=FALSE, sep="\t")