[R-br] Separa primeiro e último nome

Lucas Cusinato lucasbcr em gmail.com
Sábado Outubro 27 00:58:42 BRST 2012


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 em 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 em gmail.com>
> *To:* r-br em 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 em 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 em ufpr.br
> skype: walmeszeviani
> twitter: @walmeszeviani
> homepage: http://www.leg.ufpr.br/%7Ewalmes
>
> linux user number: 531218
> ==========================================================================
>
> _______________________________________________
> 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.
>
>
>
> _______________________________________________
> 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.
>
>
> _______________________________________________
> 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/20121027/0d4152f3/attachment-0001.html>


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