Modificar um data frame em uma matriz de comparação múltipla específica

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,sulfluramida,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@yahoo.com.br alexandre.santos@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/ ======================================================================

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@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@yahoo.com.br alexandre.santos@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@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.

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 (VIVO) (+55) 65 3221-2674 (FIXO) e-mails:alexandresantosbr@yahoo.com.br alexandre.santos@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@listas.c3sl.ufpr.br <mailto:r-br@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,sulfluramida,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 <tel:%28%2B55%29%2065%2099686-6970> (VIVO) (+55) 65 3221-2674 <tel:%28%2B55%29%2065%203221-2674> (FIXO) e-mails:alexandresantosbr@yahoo.com.br <mailto:e-mails%3Aalexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes: http://lattes.cnpq.br/1360403201088680 <http://lattes.cnpq.br/1360403201088680> OrcID: orcid.org/0000-0001-8232-6722 <http://orcid.org/0000-0001-8232-6722> - ResearcherID: A-5790-2016 Researchgate: www.researchgate.net/profile/Alexandre_Santos10 <http://www.researchgate.net/profile/Alexandre_Santos10> LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635 <http://br.linkedin.com/in/alexandre-dos-santos-87961635> Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/ <http://www.mendeley.com/profiles/alexandre-dos-santos6/> ======================================================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-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 <http://www.leg.ufpr.br/r-br-guia>) e fornea cdigo mnimo reproduzvel.

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@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@yahoo.com.br alexandre.santos@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@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@yahoo.com.br alexandre.santos@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@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@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
participantes (3)
-
ASANTOS
-
Henrique Dallazuanna
-
Tito Conte