我正在尝试解析制表符分隔的数据,该数据已保存为带有无关数据的文本文件。我希望这是一个 R data.table/data.frame。
制表符分隔的格式如下:
A 1092 - 1093 + 1X
B 1093 HRDCPMRFYT
A 1093 + 1094 - 1X
B 1094 BSZSDFJRVF
A 1094 + 1095 + 1X
B 1095 SSTFCLEPVV
...
只有两种类型的行,A 和 B。A 始终有 5 列,例如对于第一行,
1092 - 1093 + 1X
B 始终有两列:
1093 HRDCPMRFYT
问题:如何解析具有不同格式的“交替”行的文件?
假设这是一个只有这种格式的文本文件,A 行和 B 行交替,分别有 5 列和 2 列。您如何将其解析为 R data.table?我的想法是如何创建以下格式:
1092 - 1093 + 1X 1093 HRDCPMRFYT
1093 + 1094 - 1X 1094 BSZSDFJRVF
1094 + 1095 + 1X 1095 SSTFCLEPVV
...
最佳答案
您可以使用 fread
运行 shell 命令.在 Win10 中,你甚至可以运行一些 linux 实用程序,例如 sed
因此,你可以简单地做
fread("sed '$!N;s/\\n/ /' test.tab")
# V1 V2 V3 V4 V5 V6
# 1: 1092 - 1093 + 1X 1093 HRDCPMRFYT
# 2: 1093 + 1094 - 1X 1094 BSZSDFJRVF
# 3: 1094 + 1095 + 1X 1095 SSTFCLEPVV
(sed 语法取自 here )
数据
text <- "1092 - 1093 + 1X
1093 HRDCPMRFYT
1093 + 1094 - 1X
1094 BSZSDFJRVF
1094 + 1095 + 1X
1095 SSTFCLEPVV"
# Saving it as tab separated file on disk
write(gsub(" +", "\t", text), file = "test.tab")
关于r - 如何将制表符分隔的数据(不同格式)解析为 data.table/data.frame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315948/