Olá Benilton, certa vez você postou no fórum que trabalhava com 7M+ linhas e centenas de colunas diariamente e sem problemas. Então, gostaria de saber como faço para simular um conjunto de dados com 53130 colunas e 1200 linhas sem problemas. Segue a rotina abaixo com a especificação de meu PC. Sei que existe um pacote chamado "bigmemory" mas não sei utilizar. Então, se for possível, gostaria que acrescentasse nessa minha rotina abaixo o uso desse pacote para resolver o problema que está aparecendo que é: "Erro: não é possível alocar vetor de tamanho 2.4 Gb".
# Matriz simulada:
X <- matrix(rpois(30000,5),1200,25)
colnames(X) <- paste("C",1:25,sep="")
# Combinando as 25 colunas tomadas 5 à 5:
combina <- combn(ncol(X),5)
MultMat <- array(X[,combina],dim=c(nrow(X),dim(combina)[1],dim(combina)[2]))
dim(MultMat)
# Verificando o rótulo (sequência) de uma determinada combinação:
comb <- 53130 # nº de comb. possiveis de 25 colunas tomadas 5 à 5.
nomes_das_colunas = as.vector(colnames(X))
colunas_combinadas = combn(nomes_das_colunas,5)
colunas_combinadas[,comb]
rotcomb <- paste("C",1:comb,sep="")
# Conferindo todas as linhas de uma determinada combinação:
combinação <- MultMat[,,1]
colnames(combinação) <- colunas_combinadas[,1]
combinação
# Armazenando numa lista as somas de cada linha de cada combinação:
armsoma <- rep(list(rep(0,1200)),comb)
for (i in 1:comb)
{
soma_linhas <- colSums(aperm(MultMat,c(2,1,3)))
soma_linhas <- cbind(soma_linhas[,i])
colnames(soma_linhas) <- rotcomb[i]
armsoma[[i]] <- soma_linhas
}
saida <- matrix(unlist
(armsoma),1200,comb)
write.table(saida,file="saidaCOMB.txt",append = FALSE, quote = TRUE, sep = " ")
Configurações do meu laptop:
Marca: Compaq
Processador: Intel Pentium Dual Core
HD: 320 GB
Mémoria: 3GB RAM
Sistema: Windows7
Bits: 32
R version 2.13
desde já agradeço!
Att.
André
Em 31/07/2012 17:09, Benilton Carvalho < beniltoncarvalho@gmail.com > escreveu:
e se quiser economizar uns decimos de segundo:
colSums(aperm(MultMat, c(2, 1, 3)))
2012/7/31 Fabio Mathias Corrêa :
> Isso mesmo!
>
> Veja o help!
>
> ?array
> ?apply
>
> Fábio Mathias Corrêa
>
> Universidade Estadual de Santa Cruz
> Departamento de Ciências Exatas e da Terra - DCET
>
>
> Campus Soane Nazaré de Andrade, km 16 Rodovia Ilhéus-Itabuna
> CEP 45662-900. Ilhéus-Bahia
>
>
> Tel.: 73-3680-5076
> ________________________________
> De: andrebvs
>
> Para: r-br@listas.c3sl.ufpr.br
> Enviadas: Terça-feira, 31 de Julho de 2012 13:22
> Assunto: Re: [R-br] Combinar colunas de um banco de dados...
>
> obg Luciano!
><
br />>
> ________________________________
> Em 30/07/2012 09:24, Luciano F. Sgarbi < luciano.f.sgarbi@gmail.com >
> escreveu:
> #Seria isso:
> data<-read.table('clipboard',h=T)##esse é aquela matriz de 12 colunas
> combinations<-combn(colnames(data),6)
> loop<-ncol(combinations)
> resu<-matrix(0,10,loop)
> colnames(resu)<-paste(rep("comb",loop),"_",1:loop,sep="")
> rownames(resu)<-paste(rep("row",10),"_",1:10,sep="")
> for(i in 1:loop){
> resu[,i]<-rowSums(data[,combinations[,i]])
> }
> resu
>
>
> 2012/7/29 andrebvs
>
> Obg colegas!
>
> Agora, tem como somar as linhas de cada combinação? De forma que eu tenha
> um resultado geral do tipo:
>
> C1Â C2Â C3Â ... C924
> [1,]Â Â Â 5Â Â 5
> [1,] Â Â 6Â Â 5
> [1,
] Â Â 4Â Â 6
> [1,] Â Â 6Â Â 5
> [1,]Â Â Â 6Â Â 4
> [1,] Â Â 4Â Â 7
> [1,]Â Â Â 4Â Â 7
> [1,] Â Â 3Â Â 8
> [1,] Â Â 9Â Â 8
> [1,] Â Â 2 Â 6
> .
> .
> .
> [1265,]
>
>
> thanks!
>
>
> ________________________________
> Em 29/07/2012 20:01, Luciano F. Sgarbi < luciano.f.sgarbi@gmail.com >
> escreveu:
> É isso mesmo!
>
> 2012/7/29 Pedro Rafael
>
> Se quiser uma outra combinação colocar
> dados[as.vector(colunas_combinadas[,2])]
> [ Â ],
> Pedro Rafael Diniz Marinho.
>
>
> Em 29 de julho de 2012 19:55, Pedro Rafael
> escreveu:
>> dados = read.table("dados_teste.txt",header=TRUE)
>> nomes_das_colunas = as.vector(colnames(dados))
>> colun
as_combinadas = combn(nomes_das_colunas,6)
>> dados[as.vector(colunas_combinadas[,1])]
>> [ Â ],
>> Pedro Rafael Diniz Marinho.
>>
>>
>> Em 29 de julho de 2012 19:47, andrebvs [via R-br]
>> escreveu:
>>> Olá Luciano!
>>>
>>> A dúvida é a seguinte:
>>> 1º) Tenho o seguinte banco de dados abaixo:
>>>
>>>
>>> Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12
>>> 1 Â Â 1 Â 0 Â 3 Â 1 Â 0 Â 0 Â 0 Â 1 Â 0 Â Â 1 Â Â 0 Â Â 1
>>> 2 Â Â 1 Â 3 Â 0 Â 0 Â 1 Â 1 Â 0 Â 1 Â 1 Â Â 0 Â Â 2 Â Â 1
>>> 3 Â Â 0 Â 2 Â 1 Â 0 Â 0 Â 1 Â 3 Â 0 Â 0 Â Â 1 Â Â 0 Â Â 0
>>> 4 Â Â 1 Â 0 Â 0 Â 2 Â 2 Â 1 Â 0 Â 0 Â 0 Â Â 0 Â Â 2 Â Â 1
>>> 5 Â Â 0 Â 2
 1  0  1  2  0  1  1   1   0   2
>>> 6 Â Â 1 Â 1 Â 0 Â 1 Â 1 Â 0 Â 3 Â 1 Â 2 Â Â 1 Â Â 1 Â Â 0
>>> 7 Â Â 1 Â 1 Â 0 Â 1 Â 1 Â 0 Â 0 Â 0 Â 0 Â Â 1 Â Â 1 Â Â 1
>>> 8 Â Â 0 Â 1 Â 0 Â 1 Â 0 Â 1 Â 2 Â 0 Â 2 Â Â 0 Â Â 3 Â Â 0
>>> 9 Â Â 1 Â 2 Â 3 Â 1 Â 2 Â 0 Â 0 Â 0 Â 0 Â Â 2 Â Â 0 Â Â 1
>>> 10 Â Â 0 Â 1 Â 0 Â 1 Â 0 Â 0 Â 1 Â 0 Â 1 Â Â 1 Â Â 0 Â Â 2
>>>
>>> 2º) Quero combinar todas as 12 colunas tomadas 6 à 6, fazendo as contas
>>> terei 924 combinações possivéis, e uma combinação possÃvel seria,
>>> por
>>> exemplo a seguinte:
>>>
>>> Q1 Â Q4 Â Q7 Q8 Q9 Â Q12
>>> 1 Â Â 1 Â Â 1 Â Â 0 Â 1 Â 0 Â
 1
>>> 2   1   0   0 Â  1  1   1
>
>>> 3 Â Â 0 Â Â 0 Â Â 3 Â 0 Â 0 Â Â 0
>>> 4 Â Â 1 Â Â 2 Â Â 0 Â 0 Â 0 Â Â 1
>>> 5 Â Â 0 Â Â 0 Â Â 0 Â 1 Â 1 Â Â 2
>>> 6 Â Â 1 Â Â 1 Â Â 3 Â 1 Â 2 Â Â 0
>>> 7 Â Â 1 Â Â 1 Â Â 0 Â 0 Â 0 Â Â 1
>>> 8 Â Â 0 Â Â 1 Â Â 2 Â 0 Â 2 Â Â 0
>>> 9 Â Â 1 Â Â 1 Â Â 0 Â 0 Â 0 Â Â 1
>>> 10 Â Â 0 Â 1 Â Â 1 Â 0 Â 1 Â Â 2
>>>
>>> Repare que, das 12 colunas iniciais, tenho essa última com 6 colunas, a
>>> qual
>>> é uma possÃvel combinação das 924. Então, como extrair todas as 924
>>> combinações da matriz inicial?
>>>
>>> 3º) Após isso,
ou seja, após ter encontrado todas as 924
>>> combinações,
>>> gostaria também, que tivesse um vetor q ue me retorne a soma de cada
>>> linha
>>> de cada combinação. Por exemplo:
>>>
>>> combin ação1
>>> combinação924
>>> Q1  Q4  Q7 Q8 Q9  Q12   soma das linhas      . . . Q6  Q1
>>> Â Q11 Â Q2 Q9
>>> Q7 Â Â Â Â Â soma das linhas
>>> 1 Â Â 1 Â Â 1 Â Â 0 Â 1 Â 0 Â Â 1 Â Â Â Â Â Â 4
>>> 0 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
>>> 2
>>> 2 Â Â 1 Â Â 0 Â Â 0 Â 1 Â 1 Â Â 1 Â Â Â Â Â Â 4
>>> 1 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
>>
;> 3
>>> 3 Â Â 0 Â Â 0 Â Â 3 Â 0 Â 0 Â Â 0 Â Â Â Â Â Â 3 Â Â Â Â Â
>>>           � �
>>> 3 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
>>> 5
>>> 4 Â Â 1 Â Â 2 Â Â 0 Â 0 Â 0 Â Â 1 Â Â Â Â Â Â 4
>>> 3 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
>>> 1
>>> 5 Â Â 0 Â Â 0 Â Â 0 Â 1 Â 1 Â Â 2 Â Â Â Â Â Â 4
> &g t;> . Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
> Â Â .
>
>>> 6 Â Â 1 Â Â 1 Â Â 3 Â 1 Â 2 Â Â 0 Â Â Â Â Â Â 8
>>> . Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
   Â
>>> Â .
>>> 7 Â Â 1 Â Â 1 Â Â 0 Â 0 Â 0 Â Â 1 Â Â Â Â Â Â 3 Â Â Â Â Â
>>>           �
>>> �   .                     Â
>>> Â Â Â Â .
>>> 8 Â Â 0 Â Â 1 Â Â 2 Â 0 Â 2 Â Â 0 Â Â Â Â Â Â 5
>>> etc                       Â
>>> etc
>>> 9 Â Â 1 Â Â 1 Â Â 0 Â 0 Â 0 Â Â 1 Â Â Â Â Â Â 3
>>> 10 Â Â 0 Â 1 Â Â 1 Â 0 Â 1 Â Â 2 Â Â Â Â Â Â 5
>>>
>>> desde já agradeço!
>>>
>>>
>>> ________________________________
>>> Em 29/07/2012 19:04, Luciano F. Sgarbi
< [hidde n email] > escreveu:
>
>>> Boa tarde.
>>> Tentei, mas não entendi sua pergunta.
>>> Você pode ser um pouco mais especifico?
>>> Abraços
>>>
>>> 2012/7/29 andrebvs
>>>>
>>>> Olá pessoal, gostaria de saber como faço para combinar essas 12
>>>> colunas
>>>> (Q1 até Q12) tomados 6 à 6 colunas:
>>>>
>>>> Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12
>>>> 1 Â Â 1 Â 0 Â 3 Â 1 Â 0 Â 0 Â 0 Â 1 Â 0 Â Â 1 Â Â 0 Â Â 1
>>>> 2 Â Â 1 Â 3 Â 0 Â 0 Â 1 Â 1 Â 0 Â 1 Â 1 Â Â 0 Â Â 2 Â Â 1
>>>> 3 Â Â 0 Â 2 Â 1 Â 0 Â 0 Â 1 Â 3 Â 0 Â 0 Â Â 1 Â Â 0 Â Â 0
>>>> 4 Â Â 1 Â 0 Â 0 Â 2 Â 2 Â 1 Â 0 Â 0 Â 0 Â Â 0 Â �
� 2 Â Â 1
>>>> 5 Â Â 0 Â 2 Â 1 Â 0 Â 1 Â 2 Â 0 Â 1 Â 1 Â Â 1 Â Â 0 Â Â 2
>>>> 6   1  1  0  1  1  0  3  1 Â  2   1   1   0
>
>>>> 7 Â Â 1 Â 1 Â 0 Â 1 Â 1 Â 0 Â 0 Â 0 Â 0 Â Â 1 Â Â 1 Â Â 1
>>>> 8 Â Â 0 Â 1 Â 0 Â 1 Â 0 Â 1 Â 2 Â 0 Â 2 Â Â 0 Â Â 3 Â Â 0
>>>> 9 Â Â 1 Â 2 Â 3 Â 1 Â 2 Â 0 Â 0 Â 0 Â 0 Â Â 2 Â Â 0 Â Â 1
>>>> 10   0  1 � � 0  1  0  0  1  0  1   1   0  Â
>>>> 2
>>>>
>>>> desde já agradeço!
>>>>
>>>> Att.
>>>> André
>>>>
>>>>
>>>> _______________________________________________
>>>&
gt; R-br mailing list
>>>> R-br@...
>>>>
>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>>> Leia o guia de postagem (http://www.leg.ufpr.b r/r-br-guia) e forneça
>
>>>> código mÃnimo reproduzÃvel.
>>>
>>>
>>>
>>> --
>>> Luciano F. Sgarbi
>>> Mestrando em Ecologia e Evolução - UFG
>>>
>>> Laboratório de Ecologia de Insetos
>>> Cel. (62)8174-2262 Lab. (62)3521-1732
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> R-br mailing list<
br />>>> [hidden email]
>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneç a
>>> código
>
>>> mÃnimo reproduzÃvel.
>>>
>>> ________________________________
>>> If you reply to this email, your message will be added to the discussion
>>> below:
>>>
>>> http://r-br.2285057.n4.nabble.com/R-br-Combinar-colunas-de-um-banco-de-dados-tp4655709p4655711.html
>>> To unsubscribe from R-br, click here.
>>> NAML
> _________________
______________________________
> R-br mailing list
> R-br@listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr .br/r-br-guia) e forneça
> código mÃnimo reproduzÃvel.
>
>
>
> --
> Luciano F. Sgarbi
> Mestrando em Ecologia e Evolução - UFG
> Laboratório de Ecologia de Insetos
> Cel. (62)8174-2262 Lab. (62)3521-1732
> Â
> Â
>
>
>
> _______________________________________________
> R-br mailing list
> R-br@listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
&
gt; Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mÃnimo reproduzÃvel.
>
>
>
> --
> Luciano F. Sgarbi
> Mestrando em Ecologia e Evolução - UFG
>
> Laboratório de Ecologia de Insetos
> Cel. (62)8174-2262 Â Lab. (62)3521-1732
> Â
> Â
>
>
> _______________________________________________
> R-br mailing list
> R-br@listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.
>
>
> ______________________________
_________________
> R-br mailing list
> R-br@listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.