【问题标题】:How to add description lines to the header of a .txt output in R如何在 R 中将描述行添加到 .txt 输出的标题中
【发布时间】:2014-02-14 00:48:23
【问题描述】:

我正在尝试从 data.frame 对象创建一个 .csv 或 .txt 文件,该对象还包含一些描述有关变量的更多详细信息的行。

这是我的第一次尝试:

Head <- "
#variables:
#sal - Salinity [PSU]
#temp - Temperature [degrees Celsius]
"

n <- 10
df <- data.frame(sal=runif(n, 30, 37), temp=runif(n, 15, 17))
df

sink("data.txt")
Head
df
sink()

结果如下:

[1] "\n#variables [units]:\n#sal - Salinity [PSU]\n#temp - Temperature [degrees Celcius]\n"
        sal     temp
1  32.11494 15.35176
2  30.57537 16.80972
3  32.90651 15.95174
4  30.62192 15.73436
5  31.43069 15.45873
6  34.38173 15.69713
7  31.27954 15.01126
8  32.77093 16.22493
9  35.99510 15.10123
10 35.52409 15.49084

但是,我真的希望它看起来像这样:

#variables [units]:
#sal - Salinity [PSU]
#temp - Temperature [degrees Celcius]

        sal     temp
1  32.11494 15.35176
2  30.57537 16.80972
3  32.90651 15.95174
4  30.62192 15.73436
5  31.43069 15.45873
6  34.38173 15.69713
7  31.27954 15.01126
8  32.77093 16.22493
9  35.99510 15.10123
10 35.52409 15.49084

【问题讨论】:

  • 或者,如果你不想使用sink()fn &lt;- "data.txt"; writeLines(Head, fn); write.table(df, fn, append=TRUE, quote=FALSE)
  • @JoshO'Brien - 感谢您提供另一种出色的方法 - 也许考虑在下面创建另一个答案。如果您不介意,我在这里有一个后续问题:stackoverflow.com/q/21764361/1199289

标签: r export dataframe


【解决方案1】:

使用cat 而不是让R 调用对象的print 方法。

sink("data.txt")
cat(Head)
df
sink()

【讨论】:

  • +1 非常好。我认为在将文本读回 R 时我必须进行一些换行,但 read.table 的默认值假定 # 是注释字符,并且默认情况下会跳过空白行:read.table("data.txt")。像魅力一样工作 - 谢谢!
  • 再次感谢。我在这里有一个后续问题:stackoverflow.com/q/21764361/1199289。看来我的实际数据集有点复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 2017-10-03
  • 2017-09-09
  • 2018-01-15
  • 1970-01-01
相关资源
最近更新 更多