Dinamicamente subconjunto de tabela de dados em I

votos
0

Eu tenho um grande conjunto de dados com cerca de 3 milhões de linhas e 13 colunas da tabela de dados em R. Eu copiei uma amostra data--

 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

Eu quero ficar dinamicamente o subconjunto da tabela de dados com base em V4 e V5 como a chave. Se eu tiver que fazê-lo com os dados da amostra dado acima, eu vou obter a tabela de três dados em thress etapas, como temos três combinação única de V4 e V5. Então, a saída desejada é-

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

Agora, desde que os dados é enorme há muitos ser muitas combinações possíveis para V4 e V5, como é que vamos eficiente extrair os dados para cada combinação única de V4 e V5 como a chave?

Publicado 10/06/2013 em 11:39
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Eu ainda tenho não muito idéia sobre o que você quer. Mas eu vou fazer uma tentativa. Assumindo que o seu 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
}
Respondeu 10/06/2013 em 12:22
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more