Sha*_*ang 4 parsing r tab-delimited data.table
我正在尝试解析制表符分隔的数据,该数据已保存为具有无关数据的文本文件.我希望这是一个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
...
Run Code Online (Sandbox Code Playgroud)
只有两种类型的行,A和B.一直有5列,例如第一行,
1092 - 1093 + 1X
Run Code Online (Sandbox Code Playgroud)
B始终有两列:
1093 HRDCPMRFYT
Run Code Online (Sandbox Code Playgroud)
问题:如何使用不同格式的"交替"行解析文件?
假设这是一个只有这种格式的文本文件,交替排列A和B,分别有5列和2列.你如何将其解析为R data.table?我的想法是如何创建以下格式:
1092 - 1093 + 1X 1093 HRDCPMRFYT
1093 + 1094 - 1X 1094 BSZSDFJRVF
1094 + 1095 + 1X 1095 SSTFCLEPVV
...
Run Code Online (Sandbox Code Playgroud)
您可以使用运行shell命令fread.在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
Run Code Online (Sandbox Code Playgroud)
(从这里采用sed语法)
数据
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")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |