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ônimo
Bacharel em Ciências Estatísticas - ENCE/IBGE
Mestre em Metrologia - PUC-Rio/PósMQI
http://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

Engenheiro Agrônomo - Data Scientist 
CREA : 051984991-4
Técnico em Segurança do Trabalho 
Nº: 0012669/BA
Tel: +55 73 99151-9565


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
_______________________________________________
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.