【问题标题】:How to import the text file with special character如何导入带有特殊字符的文本文件
【发布时间】:2021-12-26 20:00:47
【问题描述】:

我是 RStudio 的新手。 我正在尝试将以下文本导入 Rstudio。文件类型为 .txt。我想删除前 6 行(所有文本)。

AAA: true
BBB: false
CCC: 0
DDD: Wavelengths
EEE: 3648
>>>>>Begin Decimal Data<<<<<
623.821 -216.03
623.881 -216.03
623.941 -216.03

然后我想创建data.table,分为两列:Col A 和 Col B,如下所示。

Col A  Col B
623.821 -216.03
623.881 -216.03
623.941 -216.03

你能帮我写一下代码吗?

【问题讨论】:

  • 欢迎堆栈溢出。请查看read.delim() 的 R 帮助文档,尤其是 skip、header 和 col.names。应该可以在一行中完成您需要的所有操作。尝试并记录下来,如果之后仍有问题,请寻求反馈。

标签: r tidyverse


【解决方案1】:

您可以使用函数read.table 并使用skip 参数。它指定要跳过的行数。 对于有两列,列之间的默认分隔符是一个空格字符,这似乎是您文件中的情况(如果您需要更改它,它是 sep 参数)。 我强烈建议您阅读真正易于理解的帮助(当您的光标位于某个函数上时,您可以在 Rstudio 中使用 F1 来快速访问它)。

解决方案可能是这样的:

dat <- read.table('directory/myfile.txt', skip = 6)

编辑

如果您还想为您的列命名,您可以使用namescolnames,如下所示:

names(dat) <- c("Col_A", "Col_B")

最好不要在名称中使用空格,因为以后可能会出现问题

【讨论】:

  • 谢谢,Glastos!实际上,我有一系列 .txt 文件。所以,我想合并,删除行并分离列。我编码如下: files % str_sub(start = -2) assign( obj_name[i], read_table(files[i], skip = 13)) names(obj_name[i])
  • -- 列规范 -------------------------------------- ------------------------------------ cols(&gt;&gt;&gt;&gt;&gt;Begin = col_double(), Spectral = col_double(), Data&lt;&lt;&lt;&lt;&lt; = col_character() ) 警告:3648解析失败。 row col 预期实际文件 1 -- 3 列 2 列 'L1_0401_0603_B.txt' 2 -- 3 列 2 列 'L1_0401_0603_B.txt' ... ... ... ...... .................... 更多详细信息,请参见问题(...)。名称错误(obj_name[i])
  • 我很难说问题出在哪里,但这可能是因为一个文件要跳过的行数或列数不同,这会导致问题。您确定所有文件都显示这两个参数的一致性吗?
  • 是的,我检查的文件数不一致。现在我要换一种方式了,谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-12-08
  • 2018-09-29
  • 1970-01-01
  • 2018-05-31
  • 2014-04-17
  • 2021-02-23
  • 1970-01-01
相关资源
最近更新 更多