【问题标题】:Output data to text file in individual rows in r将数据输出到 r 中各行的文本文件
【发布时间】:2014-08-04 04:05:10
【问题描述】:

我正在尝试在 r 中编写代码:

1.)读取文本文件中的每一行

2.)将这些行写入文本文件

我的代码做了这些事情,但问题是 r 正在以连续格式将行写入文本文件,而不是像原始文本文件那样逐行写入。

这是我的代码:

test <- readLines("file_name.txt")
test <- test[seq(1, length(test), 2)] # reads every 2nd line
cat(test, file="E:/output_file_name.txt", sep = " ",append=TRUE)

在原始文件“file_name.txt”中的行是这样的:

"2013-05-30",15,30,55,95

"2013-05-31",27,97,77,88

"2013-06-01",50,99,81,82

我正在读取每隔一行,以便 r 每隔一行输出一个文本文件。 但问题是当我输出到标题为“output_file_name.txt”的文本文件时 文本文件的样子是:

"2013-05-30",15,30,55,95 "2013-06-01",50,99,81,82

但我需要的文本文件看起来像:

"2013-05-30",15,30,55,95

"2013-06-01",50,99,81,82

原始文本文件太大,无法手动编辑。

请帮忙,

谢谢

【问题讨论】:

  • 为什么设置sep=" "?如果您希望它们每个都在一个新行上,我认为sep="\n" 将是正确的选择。

标签: r cat readlines


【解决方案1】:

我更喜欢 write 函数来写入文件。我认为这可以满足您的需求。

> txt <- '"2013-05-30",15,30,55,95
 "2013-05-31",27,97,77,88
 "2013-06-01",50,99,81,82'
> test <- readLines(textConnection(txt))
> test <- test[seq(1, length(test), 2)]
> writeLines(test, sep = "\n") ## with  file = "filename" to write to file
"2013-05-30",15,30,55,95
"2013-06-01",50,99,81,82

您只需要一个sep = "\n"。或者你可以在每个字符串的末尾插入"\n",但这太过分了。

【讨论】:

    【解决方案2】:

    只需使用 paste0 附加一个“\n”来分隔行:

    cat( paste0(test, "\n"), file="E:/output_file_name.txt", sep = " ",append=TRUE)
    

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2020-01-07
      • 2014-07-20
      • 2015-10-13
      • 1970-01-01
      相关资源
      最近更新 更多