如何在 R 中处理制表符分隔的 txt 导入中的双制表符?
How do I handle double-tabs in tab delimited txt import in R?
我有一个以制表符分隔的文本文件,但有些行在列之间有两个制表符。当我阅读 R 时,一切看起来都很棒,直到我遇到其中一行然后崩溃。
我想我需要说明一下,如果一个选项卡跟在另一个选项卡之后,则应忽略第二个选项卡。
我试过使用带和不带 sep="\t" 的 read.table 以及 read_table。
data <- read.table("frog.txt",sep="\t", skip = 9, header=TRUE)
我应该从中得到的是:
|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 |
只要字段中没有空格,那么我认为您犯了一些其他错误,因为仅省略 sep
就足够了。例如:
read.table(text = "1\t\t2\t3")
## V1 V2 V3
## 1 1 2 3
一个快速的解决方案是将所有双标签转换为单标签:
library(data.table)
data <- readLines("frog.txt")
data <- gsub("\t\t", "\t", data)
data <- fread(text=data, sep="\t", skip = 9, header=TRUE)
我有一个以制表符分隔的文本文件,但有些行在列之间有两个制表符。当我阅读 R 时,一切看起来都很棒,直到我遇到其中一行然后崩溃。
我想我需要说明一下,如果一个选项卡跟在另一个选项卡之后,则应忽略第二个选项卡。
我试过使用带和不带 sep="\t" 的 read.table 以及 read_table。
data <- read.table("frog.txt",sep="\t", skip = 9, header=TRUE)
我应该从中得到的是:
|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 |
只要字段中没有空格,那么我认为您犯了一些其他错误,因为仅省略 sep
就足够了。例如:
read.table(text = "1\t\t2\t3")
## V1 V2 V3
## 1 1 2 3
一个快速的解决方案是将所有双标签转换为单标签:
library(data.table)
data <- readLines("frog.txt")
data <- gsub("\t\t", "\t", data)
data <- fread(text=data, sep="\t", skip = 9, header=TRUE)