【问题标题】:append data to form a single string using R使用 R 追加数据以形成单个字符串
【发布时间】:2017-12-20 04:37:40
【问题描述】:

我想在 R 中形成一个字符串: 以下是我需要形成的数据:

list_names <- c("a","b")
answer <- NULL
for (name in list_names){
   append(answer,name)
   append(answer,"\n")
   final <- write.table(df,row.names=FALSE,col.names=FALSE, sep=",")
   append(answer,final)
}
print(answer)

输出应如下所示:单个字符串:

a
table1
b 
table2

但它似乎只附加了表格而不是文本。我该怎么做?我是 R 新手。请建议。

【问题讨论】:

    标签: r string append character


    【解决方案1】:

    append 方法不会改变answer 变量的值。如果你想要它,你必须这样做:answer &lt;- append(answer, name)。此外,write.table 方法输出到文件而不是字符串。

    这可以满足您的需求:

    library(stringr)
    
    list_names <- c("a","b")
    answer <- ""
    for (name in list_names){
      answer <- str_c(answer,name)
      names(df) <- NULL
      final <- str_c(capture.output(print.data.frame(df, row.names = FALSE)) , collapse = "\n")
      answer <- str_c(answer,final, "\n")
    }
    writeLines(answer)
    

    这会在最后打印一个额外的行。如果您在列表索引而不是名称上循环,则可以避免这种情况。

    【讨论】:

    • 好的,正如您所说,write.table 输出到文件。但是在这里,我并没有实际保存到文件中,我只是在内存中创建该表,所以我想如果我可以将此表附加到一个字符串,那么它将成为一个类似于 python 中的字符串。此外,您可以在我的表格行代码中看到我指定了 col.names=FALSE, sep=","。我如何在您的代码中执行此操作?
    • 好吧,我用这个解决了我上面的评论问题:final
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 2010-12-30
    相关资源
    最近更新 更多