【问题标题】:combine results from a loop in one file将循环的结果合并到一个文件中
【发布时间】:2011-03-23 11:16:51
【问题描述】:

我创建了一个这样的循环:

for (p in 1:nrow(outcomes)) {

    id <- apply(regulationtable, 1, function(i)
        sum(i[1:length(regulationtable)] != outcomes[p,])==0)

    idd <- as.matrix(id)
    test2 = subset(idd, idd[,1]==TRUE)

    result <- as.data.frame(rownames(test2))

    filename = paste("file", p, ".txt")

    write.table(result, filename)
}

每个循环的结果都将保存为一个文件。我想合并这些结果并创建一个包含所有结果的文件。

谁能帮我解决这个问题?

【问题讨论】:

    标签: r loops save


    【解决方案1】:

    使用write.table 中的append 参数,您可以向现有文件添加行而不是覆盖它们:

    if (p == 1) 
    {
      write.table(result, "file.txt") 
    } else
    { 
      write.table(result, "file.txt", append = TRUE, col.names = FALSE)
    }
    

    这是你的意思吗?

    编辑:您可能希望第一次运行对其进行初始化而不是追加,然后彼此运行以不打印列名(我假设每个表的这些名称都是相同的)。

    【讨论】:

    • 警告都是一样的。像这样:警告消息:1:在 write.table(result, filename, append = TRUE): 将列名附加到文件
    • @Lisann - 警告告诉您每次附加到文件时都会再次添加列名。你应该可以打开你的file.txt 看看它是什么意思。看起来@Sacha 已经更新了他的答案来解决这个问题。
    • 是的,你是对的。在 R 中工作没问题,但我在另一个程序中运行 R,结果出错了
    猜你喜欢
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    相关资源
    最近更新 更多