gpt4 book ai didi

r - 如何将制表符分隔的数据(不同格式)解析为 data.table/data.frame?

转载 作者:行者123 更新时间:2023-12-04 22:55:14 25 4
gpt4 key购买 nike

我正在尝试解析制表符分隔的数据,该数据已保存为带有无关数据的文本文件。我希望这是一个 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/

25 4 0