[R-br] =?utf-8?Q?D=C3=BAvida_?=reestruturar variáveis.

Fernando Souza nandodesouza em gmail.com
Qua Fev 16 09:46:28 -03 2022


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 em 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 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/20220216/0f1a3de7/attachment.htm>


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