【问题标题】:How can I append a header to a CSV file I am writing out in R?如何将标题附加到我用 R 写出的 CSV 文件?
【发布时间】:2014-05-17 13:04:00
【问题描述】:

我可以将数据框导出到 CSV 文件中,但在此之前我需要附加两行信息。我没有写出列名。

Trend data
110

这里,“趋势数据”只是一个文本。而且,110 是我正在写出的数据框中的行数。

如何将这些信息附加到我用 R 写出的 csv 文件的标题中?

谢谢!

【问题讨论】:

  • 您想将其附加到列名中,还是在数据前新建 2 行?
  • 我不需要我正在写出的文件中的列名。我想在数据之前添加两个新行。谢谢

标签: r


【解决方案1】:

应该这样做:

x <- 1:110

writeLines(c("Trend data","110"), "myfile.dat")
write.table(x, "myfile.dat", col.names=FALSE, row.names=FALSE, append=TRUE)

从 Mac OS X 终端查看:

$ head myfile.dat
Trend data
110
1
2
3
4
5
6
7
8

【讨论】:

  • 啊,writeLines...这就是我需要的。经过进一步审查,我的将无法正常工作。非常好。
  • 发帖者的问题实际上让我想起了 append 参数 :-) 我一直忘记很多 write… 函数都有这个。有些时候真的很方便。
  • 对。我试过rev(append(... 没有运气。有没有办法逆转append?无论您列出参数的顺序如何,它都会打印相同的结果。
  • 我不这么认为 (ref)。至少我还没有找到封装进程的basestats 函数。
  • 我得到了 sink 的一些东西。见答案。
【解决方案2】:

您也可以使用write.tablesinksink 函数将 R 输出转移到指定文件,如果需要,将其附加到文件中已有的内容。

> x <- data.frame(x = letters[1:5])

> write.table("Trend Data\n110", row.names = FALSE, 
              col.names = FALSE, quote = FALSE, file = "my.csv")
> sink("my.csv", append = TRUE)
> x
> sink()

> write.table(readLines("my.csv"), row.names = FALSE,
              col.names = FALSE, quote = FALSE)
Trend Data
110
  x
1 a
2 b
3 c
4 d
5 e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多