我有一个以 #
符号作为分隔符的数据文件,我想使用 read.file
命令读取该文件。
首先;这是一个大数据文件,我不想更改分隔符,因为:
- 使用数据中已存在的不同分隔符的风险(注意:可以检查,但第 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/