如何处理R中制表符分隔的txt导入中的双制表符?

时间:2019-05-13 17:14:06

标签: r read.table

我有一个文本文件,该文件以制表符分隔,但某些行在列之间具有两个制表符。当我读到R时,一切看起来都很好,直到我碰到了其中一行,然后崩溃了。

我的猜测是,我需要说的是,如果一个选项卡紧随另一个选项卡,则第二个选项卡应被忽略。

我尝试使用带有和不带有sep =“ \ t”以及read_table的read.table。

new_user.otherinfo

我应该从中得到的是:

|Ind  |Ad    |Brand  |Net  |Date  |Program  |Genre  |Metric|
|167  |Widg  |Beta   |UPN  |1/1   |Bob      |Anim   |100   |
|168  |Widg  |Gamma  |TNN  |2/2   |Burger   |Anim   | 50   |
|169  |Cog   |Beef   |TLA  |3/3   |Cheers   |Com    |199   |

但是我得到的是

|Ind  |Ad    |Brand  |Net  |Date  |Program  |Genre  |Metric|
|167  |Widg  |Beta   |UPN  |1/1   |Bob      |Anim   |100   |
|168  |Widg  |Gamma  |TNN  |2/2   |Burger Anim 50          |
|Cog Beef TLA 3/3 Cheers Com 199                           |

2 个答案:

答案 0 :(得分:2)

一种快速的解决方案是将所有双标签都转换为单标签:

library(data.table)
data <- readLines("frog.txt")
data <- gsub("\t\t", "\t", data)
data <- fread(text=data, sep="\t", skip = 9, header=TRUE)

答案 1 :(得分:0)

只要字段中没有空格,那么我认为您犯了其他错误,因为仅省略sep就足够了。例如:

read.table(text = "1\t\t2\t3")
##   V1 V2 V3
## 1  1  2  3