【问题标题】:Reading a text file with double space delimiter in R在 R 中读取带有双空格分隔符的文本文件
【发布时间】:2015-03-04 00:59:21
【问题描述】:

您好,我正在尝试在 R 中读取一个 txt 文件,但问题是这些列由双空格分隔。我知道 read.table 可以读取窃听的文件。我的问题是一些字符变量有一个空格,即“纽约”,所以我需要基于双空格而不是任何空格来分隔列。

【问题讨论】:

  • 这个问题似乎离题了,因为它是关于一个简单的 R 编程问题,而 StackOverflow 就是解决这个问题的地方。

标签: r data-cleaning


【解决方案1】:

您可以使用readLines 函数读取文本文件的行。这将返回一个字符向量,其中每个元素对应于一行。您可以使用strsplit 函数拆分这些字符串。最后,您可以使用rbind 函数将字符串组合成一个矩阵。

do.call(rbind, strsplit("filename.txt", "  "))

如果需要数据框,可以用as.data.frame函数转换矩阵。

【讨论】:

  • 谢谢斯文。我已经使用了这个并且在工作中。出于某种原因,在我使用 readLines 之后,我在每个变量前面都得到了一个 \001 而不是一个空格,但我用它作为分隔符,它工作正常
【解决方案2】:

您可以在read.table 中指定分隔符并传递regular expression

例子:

read.table(YourData, sep = "\s\s")

编辑:显然你不能通过 '\s' 尽管可以通过 '\t'

【讨论】:

  • 我已经尝试过了,但我得到了一个错误,因为它是一个无效的分隔符。我做错什么了吗?感谢您的评论
  • 您不能将正则表达式传递给sep。它必须是单个字符。 "\s" 不起作用,因为 nchar("\\s"); cat("\\s")
  • 因为\t 是单个字符。控制字符不同。输入 "\s" 会触发错误,而 "\t" 不会。
猜你喜欢
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 2021-09-22
  • 1970-01-01
相关资源
最近更新 更多