
library(bigmemory) y = big.matrix(1200, 53130, tape='double', backingfile='cache.bin') for ( i in 1:53130) y[,i] = rnorm(1200) y[1:10,1:4] Deixo para vc o exercício de ler o manual e toda a documentação no site do projeto e adapta-lo ao seu caso. b On Friday, 3 August 2012, andrebvs wrote:
Olá pessoal, 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 acrescentassem 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<javascript:_e({}, 'cvml', '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 <javascript:_e({}, 'cvml', '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<javascript:_e({}, 'cvml', '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<javascript:_e({}, 'cvml', '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...
To unsubscribe from R-br, click here. NAML
R-br mailing list R-br@listas.c3sl.ufpr.br <javascript:_e({}, 'cvml', '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 <javascript:_e({}, 'cvml', '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 <javascript:_e({}, 'cvml', '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 <javascript:_e({}, 'cvml', '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 <javascript:_e({}, 'cvml', '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.