【发布时间】:2017-06-28 23:03:04
【问题描述】:
我对 R 比较陌生。我有一个包含超过 1000 万行的数据框,其中包含 500,000 个 PMID(一种 ID)。但是,我用来运行的代码最多只能处理 4000-5000 个 PMID。以下是原始数据框(全部在一个列中)的示例:
PMID- 28524368
OT - cardiomyopathy
OT - encephalitis
LID - 10.1111/jmp.12273 [doi]
PL - Denmark
PMID- 28523858
OT - Pan troglodytes
PST - aheadofprint
LID - 10.1111/echo.13561 [doi]
STAT- Publisher
FAU - Ruivo, Catarina
PMID- 52528302
CI - (c) 2017, Wiley Periodicals, Inc.
DA - 20170518
OWN - NLM
PMID- 18325287
STAT- Publisher
OWN - NLM
DA - 20170519
LA - eng
PMID- 95625132
FAU - Oumerzouk, Jawad
JID - 0135232
PL - Australia
PMID- 47628853
LA - eng
STAT- Publisher
AID - 10.1111/jmp.12273 [doi]
您可以在示例数据框中看到,只有 6 个 PMID。所以为了这个例子,假设我需要制作多个数据帧,每个数据帧应该只有 2 个 PMID(在我的实际代码中,我可能会做大约 4000 个 PMID)。因此,我想将我的数据帧拆分为 3 个不同的数据帧,如下所示(从一个 PMID 开始,在第三个 PMID 到来之前结束)
df1:
PMID- 28524368
OT - cardiomyopathy
OT - encephalitis
LID - 10.1111/jmp.12273 [doi]
PL - Denmark
PMID- 28523858
OT - Pan troglodytes
PST - aheadofprint
LID - 10.1111/echo.13561 [doi]
STAT- Publisher
FAU - Ruivo, Catarina
df2:
PMID- 52528302
CI - (c) 2017, Wiley Periodicals, Inc.
DA - 20170518
OWN - NLM
PMID- 18325287
STAT- Publisher
OWN - NLM
DA - 20170519
LA - eng
df3:
PMID- 95625132
FAU - Oumerzouk, Jawad
JID - 0135232
PL - Australia
PMID- 47628853
LA - eng
STAT- Publisher
AID - 10.1111/jmp.12273 [doi]
注意每个PMID之间的行差异是不同的,所以必须通过字符串匹配PMID来完成。我不知道如何在这么大的数据集上执行此操作(如何不手动创建数据框?for 循环?)
任何建议将不胜感激。
【问题讨论】:
-
无论如何找到 PMID,您打算如何拆分成更小的 DF?
-
这也是我需要帮助的...我不想手动创建
df1 <- original[1:10, ]等 -
我在想也许可以找到每个 PMID 的索引并以某种方式创建从第 1 到第 4000、第 4001 到第 8000 等的多个数据帧……如果有的话,我想手动创建 100- 200 个数据帧并不是可能发生的最糟糕的事情......我只是不知道如何以均匀的间隔找到 PMID