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

Éder Comunello comunello.eder em gmail.com
Quinta Março 19 12:03:00 BRT 2015


Michelle, olá novamente!

Os links que você compartilhou estão aparecendo apenas no histórico do
Nabble <http://r-br.2285057.n4.nabble.com/>.
Quem acessa a lista diretamente no email não recebe os links e não vai ter
muito como ajudar muito. Pro meu script eu peguei de lá.
A sugestão foi apenas pra ficar mais fácil de conseguir ajuda.

Quanto ao uso do paste(), acredito que talvez você estivesse querendo fazer
uso do comando get().
O get() permite recuperar um objeto a partir do nome armazenado como string.

### <code r>
a <- 1:10
b <- round(rnorm(10),2)
c <- a^2
nomes <- c("a", "b", "c")
b
#  [1]  1.66  0.34  1.13 -0.70 -0.13  1.11 -0.13 -1.13  0.01 -0.19
nomes[2]
# [1] "b"
get(nomes[2])
#  [1]  1.66  0.34  1.13 -0.70 -0.13  1.11 -0.13 -1.13  0.01 -0.19
### >/code>




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

Em 19 de março de 2015 07:10, Michelle Bau Graczyk <mbgraczyk em gmail.com>
escreveu:

> Oi Éder,
>
> primeiramente desculpe pelas mensagens. Não sabia que que elas seriam
> enviadas, de verdade.Não farei mais isso.
>
> Em segundo, é que não vou fazer estas correlações só com essas três
> empresas, mas serão mais que 50. Por isso eu precisava criar um laço para
> que seja calculada a correlação para cada uma dessas 50 empresas com elas
> mesmo e entre elas para cada hora fixa. Dei três arquivos só de exemplo.
>
> Por isso criei um for que "roda" a hora e um outro que "roda" as empresas.
> Mas acho que quando uso a funçnao paste, ele não intende mais como objeto e
> sim como string, não sei, posso estar enganada. Porém até agora não achei
> outro modo de fazer.
>
> Desculpe novamente pelas mensagens.
>
> Obrigada,
>
> Michelle
>
> Em 18 de março de 2015 22:27, Éder Comunello <comunello.eder em gmail.com>
> escreveu:
>
> 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.
>>>
>>
>>
>> _______________________________________________
>> 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.
>>
>
>
> _______________________________________________
> 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/20150319/243f1f55/attachment.html>


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