
Vou dar um exemplo fictício, ok? Tenho um data frame chamado tese com as seguintes variáveis: nome, data da internação, data da alta, idade. O nome vem completo. Quero fazer um linkage para verificar quem reinternou. Para isso, pelo que eu entendi, para usar o RecordLinkage vou precisar um data frame com colunas com o primeiro nome, nome do meio e último nome. Vamos ver um exemplo: nome data da internação data da alta idade Maria José Pereira 20080506 20080606 79 Rodrigo de Souza Matos 20080103 20080109 80 Márcia da Silva 20080304 20090305 68 Preciso que meu data frame fique assim: nome data da internação data da alta idade nome1 nome2 nome3 Maria José Pereira 20080506 20080606 79 Maria José Pereira Rodrigo de Souza Matos 20080103 20080109 80 Rodrigo de Souza Matos Márcia da Silva 20080304 20090305 68 Márcia da Teixeira O que eu fiz foi: library(stringr) separado=strsplit(as.character(teste$nome),split=" ") fa=sapply(separado, function(i){ n=length(i) c(i[1],paste(i[2:(n-1)],collapse=" "), i[n]) }) O aspecto do "fa" ficou assim: fa[,1:3] [,1] [,2] [,3] [1,] "Maria" "Rodrigo" "Márcia" [2,] "José" "de Souza" "da" [3,] "Pereira" "Matos" "Silva" Como você vê, ele retorna uma matriz cujas colunas são as linhas do outro data frame e as linhas são as colunas que eu queria criar no data frame. Espero que tenha conseguido ser clara. Obrigada. Fátima Em 27 de outubro de 2012 00:58, Lucas Cusinato <lucasbcr@gmail.com>escreveu:
Fátima,
Com expressões regulares fica mais simples (roubei os mesmos nomes do CMR do Walmes)
nomes <- c("Antonio Teixeira Batista", "Suellen Cristina Albuquerque", "Paulo Matias dos Santos")
expressao <- '^([^ ]+).* ([^ ]+)$'
PrimeiroNome <- gsub(expressao, '\\1', nomes) UltimoNome <- gsub(expressao, '\\2', nomes)
(Nomes <- data.frame(completo = nomes, primeiro = PrimeiroNome, ultimo = UltimoNome))
Testa aí e vê se isso resolve. Em 27 de outubro de 2012 00:01, Alisson Lucrecio <alissonluc@yahoo.com.br>escreveu:
Olá Fátima, vc pode enviar um CRM? que te ajudo.
Att Alisson Lucrécio da Costa ------------------------------ *From:* Fátima Lima Paula <fatima.lima.paula@gmail.com> *To:* r-br@listas.c3sl.ufpr.br *Sent:* Friday, October 26, 2012 5:29 PM *Subject:* Re: [R-br] Separa primeiro e último nome
Caro Walmes. Na verdade esqueci de dizer que quero criar colunas no meu data frame com primeiro nome, nome do meio e último nome para depois usar o RecordLinkage.
Agradeço muito o passo a passo para separar, vou testar. Mas, como faço para criar automaticamente as colunas respectivas. Será que me fiz entender? Obrigada. Fátima
Em 26 de outubro de 2012 17:15, Walmes Zeviani <walmeszeviani@gmail.com>escreveu:
Tem sim, tudo depende do padrão apresentado. Todos os nomes são compostos por 3 partes? Bem, á pra usar a função strsplit() e quebrar no espaço em branco, o resultado é uma lista. Um probleminha surge com nomes que tem "da", "do", "das", "dos", "de" (da Silva, dos Santos, de Oliveira, do Nascimento, das Flores), mas pode ser revolvido. Veja
nomes <- c("Antonio Teixeira Batista", "Suellen Cristina Albuquerque", "Paulo Matias dos Santos")
# separa pelo espaço x1 <- strsplit(nomes, split=" ") x1
# junta o meio sapply(x1, function(i){ n <- length(i) c(i[1], paste(i[2:(n-1)], collapse=" "), i[n]) })
À disposição. Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/%7Ewalmes
linux user number: 531218 ==========================================================================
_______________________________________________ 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.
_______________________________________________ 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.