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.