我有一个非常大的数据集,大约有300万行和13列,作为R中的数据表。我复制了一个样本数据--
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13
1 AAE CDG AAE PAR NAFR_UKWEU 2 0 0 1030 1250 0.15335 0
2 AAE CDG AAE PAR NAFR_UKWEU 2 5 5 1130 1350 0.15293 0
3 AAE ORY AAE PAR NAFR_UKWEU 2 4 4 1420 1750 0.00100 0
4 AAE ORY AAE PAR NAFR_UKWEU 2 0 0 1320 1540 0.18183 0
5 AAE ORY AAE PAR NAFR_UKWEU 2 5 5 1320 1540 0.18112 0
6 AAE TXL AAE BER NAFR_UKWEU 2 3 3 1320 1540 0.17799 0
7 AAE TXL AAE BER NAFR_UKWEU 2 1 1 1135 1345 0.15178 0
8 AAL AGP AAL AGP SCAND_SEU 3 1 1 645 1355 0.04071 0
9 AAL AGP AAL AGP SCAND_SEU 3 3 3 705 1425 0.01577 0
10 AAL AGP AAL AGP SCAND_SEU 3 3 3 645 1355 0.01430 0我想在V4 & V5的基础上动态地从数据表中获取子集作为关键字。如果我必须在上面给出的样本数据上做这件事,我将在三个步骤中得到三个数据表,因为我们有三个独特的V4和V5组合。所以期望的输出是-
Step 1- Table 1:
V1 V2 V3 V4 V5 V5 V6 V7 V8 V9 V10 V11 V12
1 AAE CDG AAE PAR NAFR_UKWEU 2 0 0 1030 1250 0.15335 0
2 AAE CDG AAE PAR NAFR_UKWEU 2 5 5 1130 1350 0.15293 0
3 AAE ORY AAE PAR NAFR_UKWEU 2 4 4 1420 1750 0.00100 0
4 AAE ORY AAE PAR NAFR_UKWEU 2 0 0 1320 1540 0.18183 0
5 AAE ORY AAE PAR NAFR_UKWEU 2 5 5 1320 1540 0.18112 0
Step 2- Table 2:
V1 V2 V3 V4 V5 V5 V6 V7 V8 V9 V10 V11 V12
6 AAE TXL AAE BER NAFR_UKWEU 2 3 3 1320 1540 0.17799 0
7 AAE TXL AAE BER NAFR_UKWEU 2 1 1 1135 1345 0.15178 0
Step 3- Table 3:
V1 V2 V3 V4 V5 V5 V6 V7 V8 V9 V10 V11 V12
8 AAL AGP AAL AGP SCAND_SEU 3 1 1 645 1355 0.04071 0
9 AAL AGP AAL AGP SCAND_SEU 3 3 3 705 1425 0.01577 0
10 AAL AGP AAL AGP SCAND_SEU 3 3 3 645 1355 0.01430 0现在,由于数据量巨大,V4和V5有许多可能的组合,我们如何有效地提取V4和V5的每个唯一组合的数据作为关键字?
发布于 2013-06-10 19:22:38
我还是不太清楚你想要什么。但我要试一试。假设您的data.table是DT
idx <- unique(DT[, list(V4, V5)])
setkey(DT, "V4", "V5")
for (i in seq_len(nrow(idx))) {
DT[idx[i]] # print(DT[idx[i]]) will show you each subset
}https://stackoverflow.com/questions/17021952
复制相似问题