[R-br] Modificar um data frame em uma matriz de comparação múltipla específica

Henrique Dallazuanna wwwhsd em gmail.com
Terça Janeiro 24 22:11:15 BRST 2017


Uma sugestão seria:

dfe <- expand.grid(rownames(df), rownames(df))
lapply(names(df), function(x)cbind.data.frame(Combinacao = apply(dfe, 1,
paste, collapse = ","), Valor = abs(df[dfe$Var1,x] - df[dfe$Var2,x])))

2017-01-23 17:09 GMT-02:00 ASANTOS via R-br <r-br em listas.c3sl.ufpr.br>:

> Tito,
>
>      Muito obrigado ajudou bastante!!
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 99686-6970 <(65)%2099686-6970> (VIVO) (+55) 65 3221-2674 <(65)%203221-2674> (FIXO)e-mails:alexandresantosbr em yahoo.com.br
>         alexandre.santos em cas.ifmt.edu.br
> Lattes: http://lattes.cnpq.br/1360403201088680
> OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016
> Researchgate: www.researchgate.net/profile/Alexandre_Santos10
> LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
> Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
> ======================================================================
>
> Em 16/01/2017 14:06, Tito Conte escreveu:
>
> Alexandre,
>
>
> Eu te sugiro converter seu resultado para vetor e inserir os nomes
>
> out3 = list()
>
> for(i in seq(1,length(out2)))
> {
> out3[[i]]=as.vector(out2[[i]])
>
> names=
> paste(
> rep(rownames(out2[[i]]),each=ncol(out2[[i]])),
> rep(colnames(out2[[i]]),nrow(out2[[i]]))
> ,sep='_')
>
> names(out3[[i]])=names
>
> }
>
>
>
>
>
>
>
>
>
> Tito Conte
>
>
> Em 11 de janeiro de 2017 21:28, ASANTOS via R-br <r-br em listas.c3sl.ufpr.br
> > escreveu:
>
>> Caros Membros,
>>
>>          Eu gostaria de modificar um data frame em uma matriz de
>> comparação múltipla específica para tanto tenho um data frame DF com a nota
>> dada por dois indivíduos (Indv) para cinco diferentes produtos químicos,
>> sendo:
>>
>> Indv<-c(1,2)
>> deltametrina<-c(1,1)
>> fipronil<-c(5,3)
>> imidaclopride<-c(7,5)
>> sulfluramida<-c(3,7)
>> tiametoxam<-c(9,9)
>> DF<-cbind(Indv,deltametrina,fipronil,imidaclopride,sulfluram
>> ida,tiametoxam)
>> > DF
>>      Indv deltametrina fipronil imidaclopride sulfluramida tiametoxam
>> [1,]    1            1        5             7 3          9
>> [2,]    2            1        3             5 7          9
>>
>>           Depois eu montei uma matriz de comparação múltipla com a
>> seguinte regra, a variável (cada produto) com maior valor menos o de menor
>> valor e armazenei a nota de cada Indv em um list, sendo:
>>
>> df <- as.data.frame(t(DF[, -1]))
>> out <- lapply(df, function(x) outer(x, x, function(x, y) abs(x-y)))
>> out2 <- lapply(out, function(m) {
>>   dimnames(m) <- list(rownames(df), rownames(df))
>>   m
>> })
>> out2
>>
>> $V1
>>               deltametrina fipronil imidaclopride sulfluramida tiametoxam
>> deltametrina             0        4             6 2          8
>> fipronil                       4        0             2 2          4
>> imidaclopride            6        2             0 4          2
>> sulfluramida             2        2             4 0          6
>> tiametoxam               8        4             2 6          0
>>
>> $V2
>>               deltametrina fipronil imidaclopride sulfluramida tiametoxam
>> deltametrina             0        2             4 6          8
>> fipronil                       2        0             2 4          6
>> imidaclopride            4        2             0 2          4
>> sulfluramida             6        4             2 0          2
>> tiametoxam               8        6             4 2          0
>>
>>     No entanto, gostaria que meu output fosse:
>>
>> $V1
>> - [deltametrina, fipronil, 4]
>> - [deltametrina, imidaclopride, 6]
>> - [deltametrina, sulfluramida, 2]
>> - [deltametrina, tiametoxam, 8]
>> - [fipronil, imidaclopride, 2]
>> - [fipronil, sulfluramida, 2]
>> - [fipronil, tiametoxam, 4]
>> - [imidaclopride, sulfluramida, 4]
>> - [imidaclopride, tiametoxam, 2]
>> - [sulfluramida, tiametoxam, 6]
>>
>> $V2
>> - [deltametrina, fipronil, 2]
>> - [deltametrina, imidaclopride, 4]
>> - [deltametrina, sulfluramida, 6]
>> - [deltametrina, tiametoxam, 8]
>> - [fipronil, imidaclopride, 2]
>> - [fipronil, sulfluramida, 4]
>> - [fipronil, tiametoxam, 6]
>> - [imidaclopride, sulfluramida, 2]
>> - [imidaclopride, tiametoxam, 4]
>> - [sulfluramida, tiametoxam, 2]
>>
>>     Alguém teria alguma sugestão para ajudar?
>>
>> Obrigado,
>>
>> Alexandre
>>
>> --
>> ======================================================================
>> Alexandre dos Santos
>> Proteção Florestal
>> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
>> Campus Cáceres
>> Caixa Postal 244
>> Avenida dos Ramires, s/n
>> Bairro: Distrito Industrial
>> Cáceres - MT                      CEP: 78.200-000
>> Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)
>> e-mails:alexandresantosbr em yahoo.com.br
>>         alexandre.santos em cas.ifmt.edu.br
>> Lattes: http://lattes.cnpq.br/1360403201088680
>> OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016
>> Researchgate: www.researchgate.net/profile/Alexandre_Santos10
>> LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
>> Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
>> ======================================================================
>>
>> _______________________________________________
>> 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 fornea
>> cdigo mnimo reproduzvel.
>
>
>
>
> _______________________________________________
> 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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170124/bf7ee706/attachment.html>


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