Agregando ou reshape de dados?

Amigos de R, Há algumas horas estou empacado e ja tentei diversas coisas aqui, como o reshape e aggregate e não consigo. Bom a intensão é transformar os dados de tal forma que duas variáveis repetitivas sejam transformadas, de tal forma que as categorias dessas variáveis passem a ser as novas colunas e o seu conteúdo passe a ser True ou False para cada identificador, mais ou menos assim; Reparem que a linha 2 e 6 possuem o mesmo identificador Original: Unique_Identifier AdmissionReasonName_sec 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} Trauma não-cirurgico 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Neurológico 3 {A6240B7F-3571-473E-AEFF-944372B312A4} Infecção/Sepse 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} Cardiovascular 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} Cardiovascular 6 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Cardiovascular Formato desejado: Reparem que aqui o ID duplicado foi removido mas aparecem True nas variaveis Cardiovascular e Neurologico Unique_Identifier Trauma não-cirurgico Neurologico Infecção/Sepse Cardiovascular 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} True False False False 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} False True False True 3 {A6240B7F-3571-473E-AEFF-944372B312A4} False False True False 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} False False False True 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} False False False True Para montar o banco original s <- data.frame(Unique_Identifier=c("{6841FBAD-EB26-4EB3-AD8C-3AE00E23A563}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}","{A6240B7F-3571-473E-AEFF-944372B312A4}","{946C597C-A79C-47A0-B0A6-16BEB9817571}","{023FF83F-A65C-49FE-8E0C-D26D8BD82B40}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}"), AdmissionReasonName_sec=c("Trauma não-cirurgico","Neurológico","Infecção/Sepse","Cardiovascular","Cardiovascular","Cardiovascular")) s Abraço, Pedro Brasil

Uma opção para desempacar, deve ter uma maneira mais elegante. library(tidyr) s$Valor <- TRUE spread(s, AdmissionReasonName_sec, Valor, fill=FALSE) 2015-06-30 11:04 GMT-03:00 Pedro Emmanuel Alvarenga Americano do Brasil < emmanuel.brasil@gmail.com>:
Amigos de R,
Há algumas horas estou empacado e ja tentei diversas coisas aqui, como o reshape e aggregate e não consigo. Bom a intensão é transformar os dados de tal forma que duas variáveis repetitivas sejam transformadas, de tal forma que as categorias dessas variáveis passem a ser as novas colunas e o seu conteúdo passe a ser True ou False para cada identificador, mais ou menos assim;
Reparem que a linha 2 e 6 possuem o mesmo identificador
Original: Unique_Identifier AdmissionReasonName_sec 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} Trauma não-cirurgico 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Neurológico 3 {A6240B7F-3571-473E-AEFF-944372B312A4} Infecção/Sepse 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} Cardiovascular 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} Cardiovascular 6 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Cardiovascular
Formato desejado: Reparem que aqui o ID duplicado foi removido mas aparecem True nas variaveis Cardiovascular e Neurologico Unique_Identifier Trauma não-cirurgico Neurologico Infecção/Sepse Cardiovascular 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} True False False False 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} False True False True 3 {A6240B7F-3571-473E-AEFF-944372B312A4} False False True False 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} False False False True 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} False False False True
Para montar o banco original s <- data.frame(Unique_Identifier=c("{6841FBAD-EB26-4EB3-AD8C-3AE00E23A563}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}","{A6240B7F-3571-473E-AEFF-944372B312A4}","{946C597C-A79C-47A0-B0A6-16BEB9817571}","{023FF83F-A65C-49FE-8E0C-D26D8BD82B40}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}"), AdmissionReasonName_sec=c("Trauma não-cirurgico","Neurológico","Infecção/Sepse","Cardiovascular","Cardiovascular","Cardiovascular")) s
Abraço,
Pedro Brasil
_______________________________________________ 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.

Oi Pedro, Dá uma olhada e veja se é isso... s <- data.frame(Unique_Identifier=c("{6841FBAD-EB26-4EB3-AD8C-3AE00E23A563}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}","{A6240B7F-3571-473E-AEFF-944372B312A4}","{946C597C-A79C-47A0-B0A6-16BEB9817571}","{023FF83F-A65C-49FE-8E0C-D26D8BD82B40}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}"), AdmissionReasonName_sec=c("Trauma não-cirurgico","Neurológico","Infecção/Sepse","Cardiovascular","Cardiovascular","Cardiovascular")) s$flag <- 1 s <- reshape(s, idvar='Unique_Identifier', timevar = 'AdmissionReasonName_sec', direction='wide') s[, -1] <- apply(s[, -1], 2, function(x) {x[is.na(x)] <- 0; x}) Em 30 de junho de 2015 11:04, Pedro Emmanuel Alvarenga Americano do Brasil < emmanuel.brasil@gmail.com> escreveu:
Amigos de R,
Há algumas horas estou empacado e ja tentei diversas coisas aqui, como o reshape e aggregate e não consigo. Bom a intensão é transformar os dados de tal forma que duas variáveis repetitivas sejam transformadas, de tal forma que as categorias dessas variáveis passem a ser as novas colunas e o seu conteúdo passe a ser True ou False para cada identificador, mais ou menos assim;
Reparem que a linha 2 e 6 possuem o mesmo identificador
Original: Unique_Identifier AdmissionReasonName_sec 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} Trauma não-cirurgico 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Neurológico 3 {A6240B7F-3571-473E-AEFF-944372B312A4} Infecção/Sepse 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} Cardiovascular 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} Cardiovascular 6 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Cardiovascular
Formato desejado: Reparem que aqui o ID duplicado foi removido mas aparecem True nas variaveis Cardiovascular e Neurologico Unique_Identifier Trauma não-cirurgico Neurologico Infecção/Sepse Cardiovascular 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} True False False False 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} False True False True 3 {A6240B7F-3571-473E-AEFF-944372B312A4} False False True False 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} False False False True 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} False False False True
Para montar o banco original s <- data.frame(Unique_Identifier=c("{6841FBAD-EB26-4EB3-AD8C-3AE00E23A563}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}","{A6240B7F-3571-473E-AEFF-944372B312A4}","{946C597C-A79C-47A0-B0A6-16BEB9817571}","{023FF83F-A65C-49FE-8E0C-D26D8BD82B40}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}"), AdmissionReasonName_sec=c("Trauma não-cirurgico","Neurológico","Infecção/Sepse","Cardiovascular","Cardiovascular","Cardiovascular")) s
Abraço,
Pedro Brasil
_______________________________________________ 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.
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006

table(s) On 30/06/15 16:04, Pedro Emmanuel Alvarenga Americano do Brasil wrote:
Amigos de R,
Há algumas horas estou empacado e ja tentei diversas coisas aqui, como o reshape e aggregate e não consigo. Bom a intensão é transformar os dados de tal forma que duas variáveis repetitivas sejam transformadas, de tal forma que as categorias dessas variáveis passem a ser as novas colunas e o seu conteúdo passe a ser True ou False para cada identificador, mais ou menos assim;
Reparem que a linha 2 e 6 possuem o mesmo identificador
Original: Unique_Identifier AdmissionReasonName_sec 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} Trauma não-cirurgico 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Neurológico 3 {A6240B7F-3571-473E-AEFF-944372B312A4} Infecção/Sepse 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} Cardiovascular 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} Cardiovascular 6 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Cardiovascular
Formato desejado: Reparem que aqui o ID duplicado foi removido mas aparecem True nas variaveis Cardiovascular e Neurologico Unique_Identifier Trauma não-cirurgico Neurologico Infecção/Sepse Cardiovascular 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} True False False False 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} False True False True 3 {A6240B7F-3571-473E-AEFF-944372B312A4} False False True False 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} False False False True 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} False False False True
Para montar o banco original s <- data.frame(Unique_Identifier=c("{6841FBAD-EB26-4EB3-AD8C-3AE00E23A563}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}","{A6240B7F-3571-473E-AEFF-944372B312A4}","{946C597C-A79C-47A0-B0A6-16BEB9817571}","{023FF83F-A65C-49FE-8E0C-D26D8BD82B40}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}"),
AdmissionReasonName_sec=c("Trauma não-cirurgico","Neurológico","Infecção/Sepse","Cardiovascular","Cardiovascular","Cardiovascular")) s
Abraço,
Pedro Brasil
_______________________________________________ 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.

Amigos de R, A solução do Marcos funcionou em parte. Não consegui entender muito bem ainda como uma variavel flag muda os nomes das variáveis... mas enfim. Mas no meio do segundo round de tentativas eu tive o mesmo estalo que o Elias e acho que ficou mais facil apesar de ter mais linhas. tmp <- table(s2$Unique_Identifier,s2$AdmissionMainDiagnosisName_sec) tmp <- as.data.frame(cbind(Unique_Identifier=rownames(tmp),tmp)) rownames(tmp) <- seq_along(rownames(tmp)) colnames(tmp)[2:ncol(tmp)] <- paste0("AMDN_sec_",colnames(tmp)[2:ncol(tmp)]) # View(tmp) # lapply(tmp,table) tmp2 <- table(s2$Unique_Identifier,s2$AdmissionReasonName_sec) tmp2 <- as.data.frame(cbind(Unique_Identifier=rownames(tmp2),tmp2)) rownames(tmp2) <- seq_along(rownames(tmp2)) rownames(tmp2) <- seq_along(rownames(tmp2)) colnames(tmp2)[2:ncol(tmp2)] <- paste0("ARN_sec_",colnames(tmp2)[2:ncol(tmp2)]) # View(tmp2) # lapply(tmp2,table) s3 <- merge(tmp2,tmp,all=T,sort=F) # View(s3) # dim(s3) s3[,2:ncol(s3)] <- sapply(2:ncol(s3),function(i)ifelse(s3[,i]==1,"True","False")) Obrigado, Pedro Brasil Em 30 de junho de 2015 12:38, Elias Teixeira Krainski < eliaskrainski@yahoo.com.br> escreveu:
table(s)
On 30/06/15 16:04, Pedro Emmanuel Alvarenga Americano do Brasil wrote:
Amigos de R,
Há algumas horas estou empacado e ja tentei diversas coisas aqui, como o reshape e aggregate e não consigo. Bom a intensão é transformar os dados de tal forma que duas variáveis repetitivas sejam transformadas, de tal forma que as categorias dessas variáveis passem a ser as novas colunas e o seu conteúdo passe a ser True ou False para cada identificador, mais ou menos assim;
Reparem que a linha 2 e 6 possuem o mesmo identificador
Original: Unique_Identifier AdmissionReasonName_sec 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} Trauma não-cirurgico 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Neurológico 3 {A6240B7F-3571-473E-AEFF-944372B312A4} Infecção/Sepse 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} Cardiovascular 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} Cardiovascular 6 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} Cardiovascular
Formato desejado: Reparem que aqui o ID duplicado foi removido mas aparecem True nas variaveis Cardiovascular e Neurologico Unique_Identifier Trauma não-cirurgico Neurologico Infecção/Sepse Cardiovascular 1 {6841FBAD-EB26-4EB3-AD8C-3AE00E23A563} True False False False 2 {D4BE0DF7-A143-4EE5-9B9F-659F198A817C} False True False True 3 {A6240B7F-3571-473E-AEFF-944372B312A4} False False True False 4 {946C597C-A79C-47A0-B0A6-16BEB9817571} False False False True 5 {023FF83F-A65C-49FE-8E0C-D26D8BD82B40} False False False True
Para montar o banco original s <- data.frame(Unique_Identifier=c("{6841FBAD-EB26-4EB3-AD8C-3AE00E23A563}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}","{A6240B7F-3571-473E-AEFF-944372B312A4}","{946C597C-A79C-47A0-B0A6-16BEB9817571}","{023FF83F-A65C-49FE-8E0C-D26D8BD82B40}","{D4BE0DF7-A143-4EE5-9B9F-659F198A817C}"), AdmissionReasonName_sec=c("Trauma não-cirurgico","Neurológico","Infecção/Sepse","Cardiovascular","Cardiovascular","Cardiovascular")) s
Abraço,
Pedro Brasil
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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.
_______________________________________________ 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.
participantes (4)
-
Elias Teixeira Krainski
-
Marcos Silva
-
Pedro Emmanuel Alvarenga Americano do Brasil
-
Thiago Serafim