Veja se o seu banco inclui nomes com apenas 1 palavra (essa seria a condição p sapply não simplificar). b
Pessoal, desculpem, mas não consigo rodar um script que o Walmes me passou.No exemplo, fica tudo bem, mas na real dá zebra.Acho que os objetos estão sendo considerados diferentemente. No exemplo tudo estava com factor. Passei tudo para factor. Nos exemplos os dois bancos eram data.frames. Mas quando faço a função em um a saída vem diferente da do outro.Por favor, alguém poderia me ajudar.Exemplo que apresenteinome=c("Teresa dos Santos","Paulo da Silva","Denis Henrique de Paula","Pedro dos Santos","Pedro Maia", "Maria do Carmo")idade=c("80","89","78","78","78","85")dataint=c("26","20","25","25","25","20")dados1=data.frame(nome,idade,dataint)dados1str(dados1)nome1=dados1$nome# remover da,das,do,dos,denome1=gsub(" d(a|e|o)s? ", " ", nome1)separado1=strsplit(as.character(nome1), split=" ")head(separado1)fa1=sapply(separado1,function(i){n=length(i)if(n>2) return(c(i[1], paste(i[2:(n-1)],collapse=" "), i[n]))if(n==2) return(c(i[1], NA, i[n]))})nomenovo1=t(fa1)nomenovo1=as.data.frame(nomenovo1)dim(nomenovo1)colnames(nomenovo1)=c("nome1","nome2","nome3")dados2=cbind(dados1,nomenovo1)head(dados2)Quando faço head para o fa1 no meu exemplo, retorna assim, que pelo pouco que sei de R, parece uma matriz> head(fa1)[,1] [,2] [,3] [,4] [,5] [,6][1,] "Teresa" "Paulo" "Denis" "Pedro" "Pedro" "Maria"[2,] NA NA "Henrique" NA NA NA[3,] "Santos" "Silva" "Paula" "Santos" "Maia" "Carmo"Já quando peço o head do fa do meu bancão, retorna assim e zebra tudo a partir daí.> head(fa)[[1]][1] "HERALDO" "TAVARES" "SILVA"[[2]][1] "JUPITER" NA "SILVA"[[3]][1] "JACI" NA "SANTOS"[[4]][1] "MARCOS" "SILVA" "FILHO"[[5]][1] "PAULO" "SILVA" "PORTO"
[[6]][1] "INACIO" "AVELINO" "BELO"Alguém tem ideia do que seja?ObrigadaFátima
_______________________________________________
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.