[R-br] Calculo de correlcao entre coluas que apresentam NAS de varias matrizes

Éder Comunello comunello.eder em gmail.com
Quarta Março 18 22:27:36 BRT 2015


Olá, Michelle!

Inicialmente gostaria de sugerir que você disponibilizasse os links dos
arquivos do Dropbox diretamente no teu script, evitando as diversas
mensagens de compartilhamento na lista.
Para isso você pode consultar o tópico que segue:
<
http://r-br.2285057.n4.nabble.com/R-br-Problema-em-abrir-conexao-com-source-do-Dropbox-Public-tp4662507.html
>

Quanto ao problema em si, não entendi muito bem, mas deixo um trecho de
código que pode te ajudar:

### <code r>
urls1 <- c("
https://www.dropbox.com/s/kgxo3s8qrrv74p3/AAparaCalculodaMedia.txt",
          "
https://www.dropbox.com/s/fhutciprhgt077x/AIGparaCalculodaMedia.txt",
          "
https://www.dropbox.com/s/kvubgji1tce8sm8/AXPparaCalculodaMedia.txt")

### alterar links públicos para carregamento direto!
urls2 <- sub("^.*/s/", "http://dl.dropbox.com/s/", urls1)

AA  <- read.table(urls2[1], header=T, as.is=T)
AIG <- read.table(urls2[2], header=T, as.is=T)
AXP <- read.table(urls2[3], header=T, as.is=T)

sapply(c("AA", "AIG", "AXP"), function(x) length(get(x))) ### tamanhos
diferentes
sapply(c("AA", "AIG", "AXP"), function(x) tail(names(get(x))))

COR <- NULL
for (i in 2:394) {
     AA_AIG  <- cor(AA[,i],  AIG[,i],  use = "pairwise.complete.obs")
     AA_AXP  <- cor(AA[,i],  AXP[,i],  use = "pairwise.complete.obs")
     AIG_AXP <- cor(AIG[,i], AXP[,i],  use = "pairwise.complete.obs")
     row <- data.frame(i, AA_AIG, AA_AXP, AIG_AXP)
     COR <- rbind(COR, row)
}

head(COR)
### </code>



Éder Comunello <c <comunello.eder em gmail.com>omunello.eder em gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]

2015-03-18 13:38 GMT-04:00 Michelle Bau Graczyk <mbgraczyk em gmail.com>:

> Boa tarde,
>
> Eu tenho tres matrizes de tres empresas diferentes que estao dispostas da
> seguinte maneira:
>
> Empresa AA
> data            9:31
>             data
> 09:31 09:32 09:33 09:34 09:35 09:36 09:37 09:38 09:39 09:40 09:41 09:42
> 09:43 09:44  09:45  09:46  09:47
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 2004-07-01 700 200 7000 9400 1300 1500 6300 1800 4300 1300 4800 3900 2500
> 4300 4300
>
>
>
>
>
>
>  2004-07-02 NA NA 68900 2800 4900 1200 12300 NA NA 6500 NA 2900 8900 11600
> 26900
>
>
>
>
>
>
>  2004-07-06 800 4400 13700 10700 4700 4000 18700 9000 2100 2300 700 8900
> 10500 3900 8400
>
>
>
>
>
>
>  2004-07-07 NA 5600 1000 7300 5600 11200 3900 5800 5700 4500 34400 4100
> 500 15300 500
>
>
>
>
>
>
>  2004-07-08 NA NA NA NA NA NA NA NA NA NA 154100 42400 16700 4700 5900
>
>
>
>
>
>
>  2004-07-09 NA 96900 1000 20400 18300 18000 22500 4100 6000 1000 1900 3700
> 600 2900 14600
>
>
>
>
>
>
>  2004-07-12 1400 100 4500 3000 1300 4200 6500 4500 1600 1600 5600 7600
> 1900 4600 8300
>
>
>
>
>
>
>  2004-07-13 NA 5600 3400 16900 9000 5700 16500 1800 21000 6300 5900 12500
> 51000 7500 13100
>
>
>
>
>
>
>  2004-07-14 NA NA NA NA NA NA 164400 35000 41600 56600 27800 36500 55300
> 29900 13100
>
>
>
>
>
>
>  2004-07-15 NA 8100 2000 6100 4900 4500 2500 1400 5200 4100 5400 4000
> 13400 3200 11300
>
>
>
>
>
>
>  2004-07-16 282300 18100 30400 NA 15900 40800 9000 5300 5200 27600 7600
> 12100 8400 1000 8400
>
>
>
>
>
>
>  2004-07-19 28700 1700 2900 9500 400 2800 1100 6200 11500 17900 11100
> 16000 6800 5200 7100
>
>
>
>
>
>
>
> Onde as datas vao de 2004-07-01 ate 2004-12-31(ao todo 128)  e os horarios
> vao de 09:31 ate 16:04( ao todo 397)
>
> Eu quero calcular a correlacao entre essas tres empresas para cada hora
> fixa,ou seja, para a empresa AA eu calculo com ela mesma e com a AIG e a
> AXP para cada hora fixa, e por isso montei este programa:
>
> A<-read.table(file="/home/usuario/Documentos/AAparaCalculodaMedia.txt",
> header=TRUE)
> AA.<-as.matrix(AA)
> ##write.table(AA.,"AA..txt")
>
> AXP<-read.table("/home/usuario/Documentos/AXPparaCalculodaMedia.txt",header=TRUE)
> AXP.<-as.matrix(AXP)
> ##write.table(AXP.,"AXP..txt")
>
> AIG<-read.table("/home/usuario/Documentos/AIGparaCalculodaMedia.txt",header=TRUE)
> AIG.<-as.matrix(AIG)
>
> Symbols<-c("AA.","AIG.","AXP.")
> matrizAA<-matrix()
> j<-1
> for (j in 1:length(Symbols)){
>   empresa<-paste0(Symbols)#,"[",j,"]")
>
>   for (i in 2:397){
>     empresa1<-as.numeric(paste0(empresa,"[,",i,"]"))
>     head(empresa1)
>     matrizAA[,i-1]<-cor(as.numeric(AA.[,i]), as.numeric(empresa1),
> use="pairwise.complete.obs")
>
>   }
>
> }
>
> Mas da o erro: Erro em cor(as.numeric(AA.[, i]), as.numeric(empresa1), use
> = "pairwise.complete.obs") :
>   incompatible dimensions
> Além disso: Mensagens de aviso perdidas:
> NAs introduzidos por coerção
>
> Eu achava que usando o use = "pairwise.complete.obs" as correlacoes seriam
> calculadas apenas entre pares de numeros, mas acho que isso nao esta
> acontecendo.
> Os tres arquivos vou deixar em dropbox.
>
> Muito obrigada,
>
> Michelle
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150318/5ad24df4/attachment.html>


Mais detalhes sobre a lista de discussão R-br