
#dados x <- c("Eder David Borges da Silva","João Silva","Pedro Augusto Paulo") #quebrando os nomes, resultado numa lista lista<-strsplit(x," ") #tamanho da lista length(lista) #tamanho do nome length(lista[[1]]) #tres paste, dois dentro de um, colocando o nome com , dai o resto dos nomes juntos paste(paste(lista[[1]][length(lista[[1]])],",",collapse="",sep=""),paste(lista[[1]][1:(length(lista[[1]])-1)],collapse=" "),sep=" ") #crie um vetor pra guardar os nomes saida<-vector() #um loop para repetir a atividade acima for(i in 1:length(lista)) { saida[i]<-paste(paste(lista[[i]][length(lista[[i]])],",",collapse="",sep=""),paste(lista[[i]][1:(length(lista[[i]])-1)],collapse=" "),sep=" ") } #os nomes reorganizados saida Ai, pra ir quebrando o galho enquanto os mestres não vem hehe. Eu usei tres vezes o comando paste pra conseguir o resultado desejado, mas deve ter jeito de isso ser mais simples. Se for muito nome é melhor trocar o loop de for para um apply, so transformar isso numa função. Espero que ajude Em 13 de dezembro de 2012 11:58, Eder David Borges da Silva <eder@leg.ufpr.br> escreveu:
Pessoal, peço ajuda aos mestres em manipulação de String... eu ainda não me acertei com isso. A duvida é simples: x <- c("Eder David Borges da Silva","João Silva","Pedro Augusto Paulo") gostaria de transformar estes nomes em formato "Americano" ficando: Silva, Eder David Borges da Silva, João Paulo, Pedro Augusto. Em síntese pegar oque esta depois do ultimo espaço, e colar com tudo que esta antes dele, separando isso por uma virgula. Já tentei algumas coisa, mas sempre me confundo nas expressões regulares. Alguma dica? Obrigado
_______________________________________________ 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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://recologia.wordpress.com/ Lattes: http://lattes.cnpq.br/7355685961127056