Obrigado ao Daniel, ao Luciano e ao Jônatan, Cada uma das soluções apresentadas, contém, a sua forma, lições muito interessantes.
A solução do Daniel, embora um pouco mais exaustiva, mostra como desmontar uma estrutura de dados em listas e depois fazer a engenharia reversa numa nova estrutura bidimensional na orientação desejada. Já as soluções do Luciano e também a do Jônatan; mais elegantes e econômicas que essas, só com mágica; e mágica não me interessa. Muito obrigado a todos, PM Em sex, 30 de nov de 2018 às 12:00, <r-br-requ...@listas.c3sl.ufpr.br> escreveu: > Enviar submissões para a lista de discussão R-br para > r-br@listas.c3sl.ufpr.br > > Para se cadastrar ou descadastrar via WWW, visite o endereço > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > ou, via email, envie uma mensagem com a palavra 'help' no assunto ou > corpo da mensagem para > r-br-requ...@listas.c3sl.ufpr.br > > Você poderá entrar em contato com a pessoa que gerencia a lista pelo > endereço > r-br-ow...@listas.c3sl.ufpr.br > > Quando responder, por favor edite sua linha Assunto assim ela será > mais específica que "Re: Contents of R-br digest..." > > > Tópicos de Hoje: > > 1. Re: Modificação da orientação de estrutura de dados > (Leonardo Mancini) > 2. Re: Modificação da orientação de estrutura de dados > (Daniel Guimarães Tiezzi) > 3. Re: Modificação da orientação de estrutura de dados (Jônatan) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 29 Nov 2018 12:04:32 -0200 > From: Leonardo Mancini <lmanc...@gmail.com> > To: r-br@listas.c3sl.ufpr.br > Subject: Re: [R-br] Modificação da orientação de estrutura de > dados > Message-ID: > <CABAOmR02Yd4XgrYj92r47vpURiiivMDcYNo=sF= > g9datjs9...@mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Paulo, > > Certamente há uma maneira mais elegante de fazer isso, mas talvez esse > código te dê alguma pista: > > df %>% > spread(CAUSA, CAUSA) %>% > unite(CAUSAS, A, B, C, D, E, F, G, H, I, sep = ",", remove = T) %>% > mutate(CAUSAS = str_remove_all(CAUSAS, ",NA")) %>% > mutate(CAUSAS = str_remove_all(CAUSAS, "NA,")) > > Abs > > Em qui, 29 de nov de 2018 às 10:30, Paulo Eduardo de Mesquita por (R-br) < > r-br@listas.c3sl.ufpr.br> escreveu: > > > Prezado(a)s Colegas > > > > Peço ajuda para um problema simples para o qual não encontro solução. > > > > O código abaixo gera uma estrutura de dados de trabalho: > > > > [image: demo1.png] > > > > Eu quero muda-la para esse formato: > > > > [image: demo2.png] > > > > > > ID <- c(1, 1, 1, 1, 2, 2, 3, 3, 3) > > NOME <- c("xpto", "xpto", "xpto", "xpto", "tpzo", "tpzo", "capr", "capr", > > "capr") > > IDADE <- c(1, 1, 1, 1, 57, 57, 81, 81, 81) > > SEXO <- c("M", "M", "M", "M", "M", "M", "F", "F", "F") > > CAUSA <- c("A", "B", "C", "D", "E", "F","G","H","I") > > > > df <- data.frame(ID, NOME, IDADE, SEXO, CAUSA) > > > > df > > > > Procurei soluções com as com as funções do pacote reshape2 (unmelt e > > dcast) e group_by do dplyr, mas não tive sucesso. > > > > Fico grato por alguma dica. > > > > Muito obrigado pela atenção. > > -- > > Paulo Eduardo de Mesquita > > Disciplina de Infectologia - Faculdade de Medicina Universidade do Oeste > > Paulista Presidente Prudente - São Paulo - Brasil > > telefone: 5518 97718261 > > _______________________________________________ > > 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. > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: < > http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181129/7bd3a241/attachment-0001.html > > > -------------- Próxima Parte ---------- > Um anexo não-texto foi limpo... > Nome: demo1.png > Tipo: image/png > Tamanho: 3960 bytes > Descrição: não disponível > URL: < > http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181129/7bd3a241/attachment-0002.png > > > -------------- Próxima Parte ---------- > Um anexo não-texto foi limpo... > Nome: demo2.png > Tipo: image/png > Tamanho: 2925 bytes > Descrição: não disponível > URL: < > http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181129/7bd3a241/attachment-0003.png > > > > ------------------------------ > > Message: 2 > Date: Thu, 29 Nov 2018 12:26:45 -0200 > From: Daniel Guimarães Tiezzi <dtie...@usp.br> > To: "a lista Brasileira oficial de discussão do programa R." > <r-br@listas.c3sl.ufpr.br> > Cc: Paulo Eduardo de Mesquita <paulomesqui...@gmail.com> > Subject: Re: [R-br] Modificação da orientação de estrutura de > dados > Message-ID: <060b7fe8-bc19-4d9b-8083-07ce255c6...@usp.br> > Content-Type: text/plain; charset="utf-8" > > Pode ser que não seja o mais rápido, mas resolve > > ID <- c(1, 1, 1, 1, 2, 2, 3, 3, 3) > NOME <- c("xpto", "xpto", "xpto", "xpto", "tpzo", "tpzo", "capr", "capr", > "capr") > IDADE <- c(1, 1, 1, 1, 57, 57, 81, 81, 81) > SEXO <- c("M", "M", "M", "M", "M", "M", "F", "F", "F") > CAUSA <- c("A", "B", "C", "D", "E", "F","G","H","I") > > df <- data.frame(ID, NOME, IDADE, SEXO, CAUSA) > > df > > names <- unique(df$NOME) > id_l = list() > nome_l = list() > idade_l = list() > sexo_l = list() > causa_l = list() > > for (i in 1:length(names)) { > name = names[i] > block = as.data.frame(df[df$NOME == name, ]) > id = block$ID[1] > nome = block$NOME[1] > idade = block$IDADE[1] > sexo = block$SEXO[1] > causa = vector() > for (j in 1:nrow(block)) { > causa = paste0(causa,block$CAUSA[j], sep = ',') > } > print(causa) > id_l[[paste0(i)]] <- id > nome_l[[paste0(i)]] <- nome > idade_l[[paste0(i)]] <- idade > sexo_l[[paste0(i)]] <- sexo > causa_l[[paste0(i)]] <- causa > } > > unlist(causa_l) > > dfNew <- data.frame(ID = unlist(id_l), NOME= unlist(nome_l), IDADE= > unlist(idade_l), SEXO= unlist(sexo_l), CAUSA= unlist(causa_l)) > print(dfNew) > > Abraço > > daniel > > Daniel Tiezzi, MD, PhD > Professor Associado > Departamento de Ginecologia e Obstetrícia > Setor de Mastologia e Oncologia Ginecológica > Faculdade de Medicina de Ribeirão Preto - USP > Tel.: 16 3602-2488 > e-mail: dtie...@fmrp.usp.br > > > On Nov 29, 2018, at 10:30 AM, Paulo Eduardo de Mesquita por (R-br) < > r-br@listas.c3sl.ufpr.br> wrote: > > > > ID <- c(1, 1, 1, 1, 2, 2, 3, 3, 3) > > NOME <- c("xpto", "xpto", "xpto", "xpto", "tpzo", "tpzo", "capr", > "capr", "capr") > > IDADE <- c(1, 1, 1, 1, 57, 57, 81, 81, 81) > > SEXO <- c("M", "M", "M", "M", "M", "M", "F", "F", "F") > > CAUSA <- c("A", "B", "C", "D", "E", "F","G","H","I") > > > > df <- data.frame(ID, NOME, IDADE, SEXO, CAUSA) > > > > df > > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: < > http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181129/778f1d5b/attachment-0001.html > > > > ------------------------------ > > Message: 3 > Date: Thu, 29 Nov 2018 14:08:54 -0200 > From: Jônatan <jdtat...@gmail.com> > To: a lista Brasileira oficial de discussão do programa R. > <r-br@listas.c3sl.ufpr.br> > Subject: Re: [R-br] Modificação da orientação de estrutura de > dados > Message-ID: > <CAEiHnvPm3sJcOZSQE1HnNnSrHY= > fryzrwancxmw9olblmnh...@mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Alternativa também com dplyr. > > library(dplyr) > df %>% > group_by_at(vars(-CAUSA)) %>% > summarise(CAUSA = paste(CAUSA, collapse = ", ")) > > > On Thu, Nov 29, 2018 at 12:04 PM Leonardo Mancini por (R-br) < > r-br@listas.c3sl.ufpr.br> wrote: > > > Paulo, > > > > Certamente há uma maneira mais elegante de fazer isso, mas talvez esse > > código te dê alguma pista: > > > > df %>% > > spread(CAUSA, CAUSA) %>% > > unite(CAUSAS, A, B, C, D, E, F, G, H, I, sep = ",", remove = T) %>% > > mutate(CAUSAS = str_remove_all(CAUSAS, ",NA")) %>% > > mutate(CAUSAS = str_remove_all(CAUSAS, "NA,")) > > > > Abs > > > > Em qui, 29 de nov de 2018 às 10:30, Paulo Eduardo de Mesquita por (R-br) > < > > r-br@listas.c3sl.ufpr.br> escreveu: > > > >> Prezado(a)s Colegas > >> > >> Peço ajuda para um problema simples para o qual não encontro solução. > >> > >> O código abaixo gera uma estrutura de dados de trabalho: > >> > >> [image: demo1.png] > >> > >> Eu quero muda-la para esse formato: > >> > >> [image: demo2.png] > >> > >> > >> ID <- c(1, 1, 1, 1, 2, 2, 3, 3, 3) > >> NOME <- c("xpto", "xpto", "xpto", "xpto", "tpzo", "tpzo", "capr", > "capr", > >> "capr") > >> IDADE <- c(1, 1, 1, 1, 57, 57, 81, 81, 81) > >> SEXO <- c("M", "M", "M", "M", "M", "M", "F", "F", "F") > >> CAUSA <- c("A", "B", "C", "D", "E", "F","G","H","I") > >> > >> df <- data.frame(ID, NOME, IDADE, SEXO, CAUSA) > >> > >> df > >> > >> Procurei soluções com as com as funções do pacote reshape2 (unmelt e > >> dcast) e group_by do dplyr, mas não tive sucesso. > >> > >> Fico grato por alguma dica. > >> > >> Muito obrigado pela atenção. > >> -- > >> Paulo Eduardo de Mesquita > >> Disciplina de Infectologia - Faculdade de Medicina Universidade do > Oeste > >> Paulista Presidente Prudente - São Paulo - Brasil > >> telefone: 5518 97718261 > >> _______________________________________________ > >> 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. > > > > _______________________________________________ > > 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. > > > > -- > ############################################################### > ## Jônatan Dupont Tatsch > ## Professor do Departamento de Física > ## Centro de Ciências Exatas e Naturais (CCNE) > ## Universidade Federal de Santa Maria - UFSM > ## Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - > 97105-900 > ## Telefone: +55(55)33012083 > ## www.ufsm.br/meteorologia > ############################################################### > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: < > http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181129/c0417ec9/attachment-0001.html > > > -------------- Próxima Parte ---------- > Um anexo não-texto foi limpo... > Nome: demo1.png > Tipo: image/png > Tamanho: 3960 bytes > Descrição: não disponível > URL: < > http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181129/c0417ec9/attachment-0002.png > > > -------------- Próxima Parte ---------- > Um anexo não-texto foi limpo... > Nome: demo2.png > Tipo: image/png > Tamanho: 2925 bytes > Descrição: não disponível > URL: < > http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181129/c0417ec9/attachment-0003.png > > > > ------------------------------ > > Subject: Legenda do Digest > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > > > ------------------------------ > > Fim da Digest R-br, volume 95, assunto 23 > ***************************************** > -- Paulo Eduardo de Mesquita Disciplina de Infectologia - Faculdade de Medicina Universidade do Oeste Paulista Presidente Prudente - São Paulo - Brasil telefone: 5518 97718261
_______________________________________________ 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.