使用 '#' 作为分隔符时 Read.table 不起作用?

标签 r read.table

我有一个以 # 符号作为分隔符的数据文件,我想使用 read.file 命令读取该文件。

首先;这是一个大数据文件,我不想更改分隔符,因为:

  1. 使用数据中已存在的不同分隔符的风险(注意:可以检查,但第 2 点使问题变得更加复杂)
  2. 我希望更多的这些数据文件都以 # 符号作为分隔符,因此我不想每次想再次读取这些文件时都更改数据文件<

所以我假设我可以使用 read.file 命令的 sep 参数。但它并没有像我预期的那样适用于 # 符号。仅读取第一列。我尝试了一些不同的分隔符,除了 # 符号之外,一切都正常。请参阅下面的一些示例,包括 # 分隔符。

该文件如下所示:

H1#H2#H3
a#b#c
d#e#f

对于我更改分隔符的同一文件,R 中的代码执行包括结果。对于 =|@$ 可以正常工作,但对于 # 则不行>...

> read.table(file='test_data.dat', check.names=F, sep='=', header=T)
H1 H2 H3
1  a  b  c
2  d  e  f
> read.table(file='test_data.dat', check.names=F, sep='|', header=T)
H1 H2 H3
1  a  b  c
2  d  e  f    
> read.table(file='test_data.dat', check.names=F, sep='@', header=T)
H1 H2 H3
1  a  b  c
2  d  e  f
> read.table(file='test_data.dat', check.names=F, sep='$', header=T)
H1 H2 H3
1  a  b  c
2  d  e  f
> read.table(file='test_data.dat', check.names=F, sep='#', header=T)
H1
1  a
2  d

有人可以帮我解决这个问题吗? 这是一个已知的错误'?有解决办法吗?

预先感谢您的帮助!

最佳答案

注释字符也是#,所以你需要类似:

read.table(file='tmp.txt', check.names=FALSE, sep='#', 
          header=TRUE, comment.char="@")

关于使用 '#' 作为分隔符时 Read.table 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789282/

相关文章:

r - 为 read.table/read.csv 中的 colClasses 参数指定自定义日期格式

读取 R 中跨多行的固定宽度文件中的观察结果

r - 如何使用 data.table 处理空/不完整的子集

function - R 存在函数吗?

r - 具有按行最大值的列索引

r - 根据R中目标值的下限和上限连接两个数据帧

R read.csv 如何忽略回车?

R 有多少个元素满足一个条件?

r - 从 R 中的表读取自定义日期时间时出错

r - 有没有办法将具有不同行长度的 csv 文件扫描到列表中?