4

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

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

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

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

该文件如下所示:

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

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

在此先感谢您的帮助!

4

1 回答 1

8

评论字符也是#,所以你需要这样的东西:

read.table(file='tmp.txt', check.names=FALSE, sep='#', 
          header=TRUE, comment.char="@")
于 2012-03-20T15:05:15.400 回答