Sigo con problemas a la hora de coger una parte de los caracteres y 
ponerlos en otros cuando utilizo bucles

"Maria Jose" "de la Fuente" "Perez"

Por

"Maria Jose de la" "Fuente" "Perez"



Más o menos lo he conseguido utilizando el paquete stringr pero me dá un 
error al final y cambia los datos por NA

 > library(stringr)
 > read.table("a.txt")->data
 > data
                 V1           V2        V3
1              Ana      Morales      Díaz
2 Francisco Javier de la Fuente Izaguirre
3       María José      Sánchez     Perez
4          Jose M.        Perez   Sánchez
 >
 > as.data.frame(data)->data
 >
 > a=matrix(0,nrow(data),ncol(data))
 >
 > #Detecto donde está el 'de la'
 >
 >  for(i in 1:nrow(data)) {
+   for(j in 1:ncol(data)) {
+     str_detect(data[i,j], "de la")   -> a[i,j]
+   }
+ }
 >
 > #Reemplazar
 >
 >   for(i in 1:nrow(data)) {
+   for(j in 1:ncol(data)) {
+       if(a[i,j]== 1){
+       b<-1:ncol(data)
+     z<-str_c(data[i,1],data[i,j],sep=" ")
+     cadena_separa<-c('de la')
+     w<-unlist(str_split(z,cadena_separa, n=2))
+     v<-unlist(str_split(z,w[2], n=2))
+     b[1]<- as.character(v[1])
+     b[2]<- as.character(w[2])
+     b[3:ncol(data)] =data[i,3:ncol(data)]
+     data[i,]<-paste(b[1],b[2],b[3:ncol(data)])
+     }
+  else data[i,j]<-data[i,j]
+          }
+     }
Mensajes de aviso perdidos
1: In `[<-.factor`(`*tmp*`, iseq, value = "Francisco Javier de la  
Fuente 2") :
   invalid factor level, NAs generated
2: In `[<-.factor`(`*tmp*`, iseq, value = "Francisco Javier de la  
Fuente 2") :
   invalid factor level, NAs generated
3: In `[<-.factor`(`*tmp*`, iseq, value = "Francisco Javier de la  
Fuente 2") :
   invalid factor level, NAs generated
 >
 > data
           V1      V2      V3
1        Ana Morales    Díaz
2 <NA> <NA> <NA>
3 María José Sánchez   Perez
4    Jose M.   Perez Sánchez
 >


Hola a todos, quisiera reemplazar caracteres (nombres y apellidos) con 
tildes por caracteres sin acentos.

Ejemplo:

"Ana" "Morales" "Díaz"

"María José" "de la Fuente" "Pérez"

Por

"Ana" "Morales" "Diaz"

"Maria Jose" "de la Fuente" "Perez"

Y además si sabéis como coger una parte de los caracteres y ponerlos en 
otros

"Maria Jose" "de la Fuente" "Perez"

Por

"Maria Jose de la" "Fuente" "Perez"

Gracias


	[[alternative HTML version deleted]]

