Dúvida reestruturar variáveis.

Prezados, bom dia de novo, lá vou perturbar os amigos... Segue outro exemplo reproduzível (tem a ver com minha dúvida de ontem): library(dplyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12)x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12) exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09))names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster")row.names(exemplo)<-NULL exemplo<-exemplo %>%mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4), v5=as.numeric(v5)) exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE) Como o de ontem, esse banco tem variáveis que identificam o código do cliente, a média dos dados (iguais entre laboratórios) e o Cluster, que foi obtido previamente. A substância é detalhe adicional. O que eu gostaria é: reestruturar esse banco, colocando como variáveis de identificação a substância, o cluster e a média, e o código do cliente indo para as colunas, como está nessa tabela abaixo: Subst Cluster Média CodCli.1 CodCli.2 CodCli.3Albumina 10 2,2680 2000 2001 Albumina 12 2,8200 3000 3001 Potássio 2 3,5340 1001 1002 1003Potássio 3 4,3520 2000 2001 Eu tentei usar o comando reshape, com esse código abaixo, mas ele não funcionou comigo (tentei também o spread, do tidyr): exemplo<-exemplo %>% select(CodCli,Substância,Cluster,Média) exemplo_quebra<-reshape(exemplo, direction="wide", idvar=c("Substância","Cluster","Média"), timevar="Cod.Cli") Algum amigo poderia indicar onde estou errando? Ou se teria uma rotina melhor para realizar esse procedimento? Novamente obrigado!!! Diogo Jerônimo Bacharel em Ciências Estatísticas - ENCE/IBGEMestre em Metrologia - PUC-Rio/PósMQIhttp://lattes.cnpq.br/8996149312896520

library(dplyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12) x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12) exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09)) names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster") row.names(exemplo)<-NULL exemplo<-exemplo %>% mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4), v5=as.numeric(v5)) exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE) exemplo %>% pivot_longer(cols = 3:7) %>% group_by(Cluster, Substância, Média) %>% select(-value) %>% pivot_wider(names_from = name, values_from = CodCli) %>% as.data.frame() %>% pivot_longer(cols=-c(1:3)) %>% as.data.frame() %>% select(-name) %>% separate(value, c("x","CodCli.1","CodCli.2","CodCli.3")) %>% select(-x) %>% unique() %>% as.data.frame() %>% arrange(Substância) Vê se isso ajuda... *Cid Edson Mendonça Póvoas* *AnovAgro <http://www.anovagro.com/>* *Engenheiro Agrônomo - **Data Scientist* *CREA : 051984991-4* *Técnico em Segurança do Trabalho * *Nº: **0012669/BA* *Tel: +55 73 99151-9565* *Lattes : *http://lattes.cnpq.br/2303498368142537 *LinkedIn :* http://br.linkedin.com/in/cidedson/ *Whatsapp :* https://wa.me/5573991519565 Em qua., 16 de fev. de 2022 às 08:47, Diogo Jerônimo por (R-br) < r-br@listas.c3sl.ufpr.br> escreveu:
Prezados, bom dia de novo, lá vou perturbar os amigos... Segue outro exemplo reproduzível (tem a ver com minha dúvida de ontem):
library(dplyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12) x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12)
exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09)) names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster") row.names(exemplo)<-NULL
exemplo<-exemplo %>%
mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4), v5=as.numeric(v5))
exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE)
Como o de ontem, esse banco tem variáveis que identificam o código do cliente, a média dos dados (iguais entre laboratórios) e o Cluster, que foi obtido previamente. A substância é detalhe adicional.
O que eu gostaria é: reestruturar esse banco, colocando como variáveis de identificação a substância, o cluster e a média, e o código do cliente indo para as colunas, como está nessa tabela abaixo:
*Subst Cluster Média CodCli.1 CodCli.2 CodCli.3* Albumina 10 2,2680 2000 2001 Albumina 12 2,8200 3000 3001 Potássio 2 3,5340 1001 1002 1003 Potássio 3 4,3520 2000 2001
Eu tentei usar o comando reshape, com esse código abaixo, mas ele não funcionou comigo (tentei também o spread, do tidyr):
exemplo<-exemplo %>% select(CodCli,Substância,Cluster,Média)
exemplo_quebra<-reshape(exemplo, direction="wide",
idvar=c("Substância","Cluster","Média"), timevar="Cod.Cli")
Algum amigo poderia indicar onde estou errando? Ou se teria uma rotina melhor para realizar esse procedimento?
Novamente obrigado!!!
*Diogo Jerônimo* *Bacharel em Ciências Estatísticas - ENCE/IBGE* *Mestre em Metrologia - PUC-Rio/PósMQI* *http://lattes.cnpq.br/8996149312896520 <http://lattes.cnpq.br/8996149312896520>* _______________________________________________ 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.

Prezado Cid, primeiro obrigado pela atenção!!! Era exatamente o que eu queria, só não ficou perfeito porque você quadrou com meu exemplo exato (com três códigos), mas podem ter mais de três (não saberia dizer quantos), então terei de ver como ampliar sua solução. Mas era exatamente isso!!! Muitíssimo obrigado!!! Diogo JerônimoBacharel em Ciências Estatísticas - ENCE/IBGEMestre em Metrologia - PUC-Rio/PósMQIhttp://lattes.cnpq.br/8996149312896520 Em quarta-feira, 16 de fevereiro de 2022 09:35:30 BRT, Cid Póvoas <cidedson@gmail.com> escreveu: library(dplyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12) x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12) exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09)) names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster") row.names(exemplo)<-NULL exemplo<-exemplo %>% mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4), v5=as.numeric(v5)) exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE) exemplo %>% pivot_longer(cols = 3:7) %>% group_by(Cluster, Substância, Média) %>% select(-value) %>% pivot_wider(names_from = name, values_from = CodCli) %>% as.data.frame() %>% pivot_longer(cols=-c(1:3)) %>% as.data.frame() %>% select(-name) %>% separate(value, c("x","CodCli.1","CodCli.2","CodCli.3")) %>% select(-x) %>% unique() %>% as.data.frame() %>% arrange(Substância) Vê se isso ajuda... Cid Edson Mendonça Póvoas AnovAgro Engenheiro Agrônomo - Data Scientist CREA : 051984991-4 Técnico em Segurança do Trabalho Nº: 0012669/BATel: +55 73 99151-9565Lattes : http://lattes.cnpq.br/2303498368142537 LinkedIn : http://br.linkedin.com/in/cidedson/Whatsapp : https://wa.me/5573991519565 Em qua., 16 de fev. de 2022 às 08:47, Diogo Jerônimo por (R-br) <r-br@listas.c3sl.ufpr.br> escreveu: Prezados, bom dia de novo, lá vou perturbar os amigos... Segue outro exemplo reproduzível (tem a ver com minha dúvida de ontem): library(dplyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12)x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12) exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09))names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster")row.names(exemplo)<-NULL exemplo<-exemplo %>%mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4), v5=as.numeric(v5)) exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE) Como o de ontem, esse banco tem variáveis que identificam o código do cliente, a média dos dados (iguais entre laboratórios) e o Cluster, que foi obtido previamente. A substância é detalhe adicional. O que eu gostaria é: reestruturar esse banco, colocando como variáveis de identificação a substância, o cluster e a média, e o código do cliente indo para as colunas, como está nessa tabela abaixo: Subst Cluster Média CodCli.1 CodCli.2 CodCli.3Albumina 10 2,2680 2000 2001 Albumina 12 2,8200 3000 3001 Potássio 2 3,5340 1001 1002 1003Potássio 3 4,3520 2000 2001 Eu tentei usar o comando reshape, com esse código abaixo, mas ele não funcionou comigo (tentei também o spread, do tidyr): exemplo<-exemplo %>% select(CodCli,Substância,Cluster,Média) exemplo_quebra<-reshape(exemplo, direction="wide", idvar=c("Substância","Cluster","Média"), timevar="Cod.Cli") Algum amigo poderia indicar onde estou errando? Ou se teria uma rotina melhor para realizar esse procedimento? Novamente obrigado!!! Diogo Jerônimo Bacharel em Ciências Estatísticas - ENCE/IBGEMestre em Metrologia - PUC-Rio/PósMQIhttp://lattes.cnpq.br/8996149312896520______________________________________... 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.

Veja se é isso library(dplyr) library(tidyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12) x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12) exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09)) names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster") row.names(exemplo)<-NULL exemplo<-exemplo %>%mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4),v5=as.numeric(v5)) exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE) exemplo exemplo%>%gather(obs,valor, -c("CodCli","Substância","Cluster","Média"))%>% spread(key=CodCli,value=valor) On Feb 16 2022, at 8:46 am, Diogo Jerônimo por (R-br) <r-br@listas.c3sl.ufpr.br> wrote:
Prezados, bom dia de novo, lá vou perturbar os amigos... Segue outro exemplo reproduzível (tem a ver com minha dúvida de ontem):
library(dplyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2)
x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2) x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3) x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12) x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10) x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12)
exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09)) names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster") row.names(exemplo)<-NULL
exemplo<-exemplo %>% mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4), v5=as.numeric(v5))
exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE)
Como o de ontem, esse banco tem variáveis que identificam o código do cliente, a média dos dados (iguais entre laboratórios) e o Cluster, que foi obtido previamente. A substância é detalhe adicional.
O que eu gostaria é: reestruturar esse banco, colocando como variáveis de identificação a substância, o cluster e a média, e o código do cliente indo para as colunas, como está nessa tabela abaixo:
Subst Cluster Média CodCli.1 CodCli.2 CodCli.3 Albumina 10 2,2680 2000 2001 Albumina 12 2,8200 3000 3001 Potássio 2 3,5340 1001 1002 1003 Potássio 3 4,3520 2000 2001
Eu tentei usar o comando reshape, com esse código abaixo, mas ele não funcionou comigo (tentei também o spread, do tidyr): exemplo<-exemplo %>% select(CodCli,Substância,Cluster,Média)
exemplo_quebra<-reshape(exemplo, direction="wide", idvar=c("Substância","Cluster","Média"), timevar="Cod.Cli")
Algum amigo poderia indicar onde estou errando? Ou se teria uma rotina melhor para realizar esse procedimento?
Novamente obrigado!!!
Diogo Jerônimo Bacharel em Ciências Estatísticas - ENCE/IBGE Mestre em Metrologia - PUC-Rio/PósMQI http://lattes.cnpq.br/8996149312896520
_______________________________________________ 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.

Prezado Fernando, primeiro obrigado pela atenção!!! Ficou mais ou menos o que eu queria, porque os códigos foram para o topo da tabela (ou seja, como nome), mas eles deveriam ser células. Vou ver se consigo adaptar!!! Obrigadão!!! Diogo JerônimoBacharel em Ciências Estatísticas - ENCE/IBGEMestre em Metrologia - PUC-Rio/PósMQIhttp://lattes.cnpq.br/8996149312896520 Em quarta-feira, 16 de fevereiro de 2022 09:46:32 BRT, Fernando Souza <nandodesouza@gmail.com> escreveu: Veja se é isso library(dplyr)library(tidyr) x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12)x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12) exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09))names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster")row.names(exemplo)<-NULLexemplo<-exemplo %>%mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4),v5=as.numeric(v5))exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE)exemplo exemplo%>%gather(obs,valor, -c("CodCli","Substância","Cluster","Média"))%>% spread(key=CodCli,value=valor) On Feb 16 2022, at 8:46 am, Diogo Jerônimo por (R-br) <r-br@listas.c3sl.ufpr.br> wrote: Prezados, bom dia de novo, lá vou perturbar os amigos... Segue outro exemplo reproduzível (tem a ver com minha dúvida de ontem): library(dplyr)x01<-c(1001,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x02<-c(2000,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x03<-c(1002,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x04<-c(1003,"Potássio",3.49,3.62,3.63,3.49,3.44,2)x05<-c(2001,"Potássio",4.18,4.21,4.15,4.86,4.36,3)x06<-c(2000,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x07<-c(3000,"Albumina",2.69,2.78,2.88,2.91,2.84,12)x08<-c(2001,"Albumina",2.35,2.36,2.21,2.15,2.27,10)x09<-c(3001,"Albumina",2.69,2.78,2.88,2.91,2.84,12) exemplo<-data.frame(rbind(x01,x02,x03,x04,x05,x06,x07,x08,x09))names(exemplo)<-c("CodCli","Substância","v1","v2","v3","v4","v5","Cluster")row.names(exemplo)<-NULL exemplo<-exemplo %>%mutate(v1=as.numeric(v1),v2=as.numeric(v2),v3=as.numeric(v3),v4=as.numeric(v4), v5=as.numeric(v5)) exemplo$Média<-rowMeans(exemplo[,3:7],na.rm = TRUE) Como o de ontem, esse banco tem variáveis que identificam o código do cliente, a média dos dados (iguais entre laboratórios) e o Cluster, que foi obtido previamente. A substância é detalhe adicional. O que eu gostaria é: reestruturar esse banco, colocando como variáveis de identificação a substância, o cluster e a média, e o código do cliente indo para as colunas, como está nessa tabela abaixo: Subst Cluster Média CodCli.1 CodCli.2 CodCli.3Albumina 10 2,2680 2000 2001Albumina 12 2,8200 3000 3001Potássio 2 3,5340 1001 1002 1003Potássio 3 4,3520 2000 2001 Eu tentei usar o comando reshape, com esse código abaixo, mas ele não funcionou comigo (tentei também o spread, do tidyr): exemplo<-exemplo %>% select(CodCli,Substância,Cluster,Média) exemplo_quebra<-reshape(exemplo, direction="wide", idvar=c("Substância","Cluster","Média"), timevar="Cod.Cli") Algum amigo poderia indicar onde estou errando? Ou se teria uma rotina melhor para realizar esse procedimento? Novamente obrigado!!! Diogo JerônimoBacharel em Ciências Estatísticas - ENCE/IBGEMestre em Metrologia - PUC-Rio/PósMQIhttp://lattes.cnpq.br/8996149312896520______________________________________... mailing listR-br@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-brLeia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (3)
-
Cid Póvoas
-
Diogo Jerônimo
-
Fernando Souza