2014-10-15 1 views
4

나는 html 파일이있는 라이브러리를 가지고 있으며 files_dep에는 그 목록이 있습니다. 테이블에 저장된 텍스트를 변환해야하지만 문제는 액센트와 ñ가 있다는 것입니다. 나는 이것을 읽고 썼다.문자열에있는 R- 삭제 액센트

for (i in files_dep) { 
    text<-readLines(i,encoding="UTF-8") 
    aa<-paste(text, collapse=' ') 
    if (grepl(empieza,aa) & grepl(termina,aa)) { 
    nota=gsub(paste0("(^.*", empieza, ")(.*?)(", termina, ".*)$"), "\\2", aa) 
    #nota<-iconv(nota,to="ASCII//TRANSLIT") 
    df<-rbind(df, data.frame(fileName=i, nota=nota)) }} 

나는 같은 것을 읽을 수 있습니다

Este sábado enfrentarán a un equipo. 

그래서 난 단지 악센트를 삭제해야합니다. 나는

nota <- iconv(nota,to="ASCII//TRANSLIT") 

주석을 시도했지만 내가 얻을 :

Este sA!bado se enfrentarA!n a un equipo. 

그래서, 문제가 무엇인지 모른다.

또한 악센트와 모든 특수 문자를 삭제해야합니다. 감사합니다

에디션 :

나는 루프의 끝에서의 Nota에 저장된 마지막 데이터를했다.

nota 
[1] "       <p>La inclusión del seleccionado argentino en el viejo Tres Naciones significó, hace tres años, la confirmación de que el nivel del rugby argentino estaba a la altura de los grandes equipos del planeta, aunque se preveía que esa transición entre ser un equipo <em>del montón</em>&nbsp;a formar parte de la<em> elite </em>no iba a ser sencilla<em>. </em>Hoy, luego de dos años de competencia en el Rugby Championship, Los Pumas están cada vez más cerca de dar el batacazo y conseguir su primer triunfo en la historia del torneo.</p><p> 

내가 할 경우 :

iconv(nota,to="ASCII//TRANSLIT") 

내가 얻을 : 이것은 내가 볼 것입니다

iconv(nota,to="ASCII//TRANSLIT") 
[1] "       <p>La inclusiA3n del seleccionado argentino en el viejo Tres Naciones significA3, hace tres aA?os, la confirmaciA3n de que el nivel del rugby argentino estaba a la altura de los grandes equipos del planeta, aunque se preveA-a que esa transiciA3n entre ser un equipo <em>del montA3n</em>&nbsp;a formar parte de la<em> elite </em>no iba a ser sencilla<em>. </em>Hoy, luego de dos aA?os de competencia en el Rugby Championship, Los Pumas estA!n cada vez mA!s cerca de dar el batacazo y conseguir su primer triunfo en la historia del torneo. 
+0

사용중인 OS 및 R 버전은 무엇입니까? 나는'nota <- 'Este sábado enfrentarán un equipo를 실행합니다. "; iconv (nota, to = "ASCII // TRANSLIT")', 나는 "Este sabado enfrentaran a un equipo"를 얻었습니다. "R 3.1.1을 Windows에서 실행 중입니다. – MrFlick

+1

@MrFlick - 아마도 로케일과 관련이있을 것입니다. 위의 코드는 나에게도 동일하게 작동하지만'Sys.getlocale() '에 따라 "English_United States"로케일에 있습니다. – thelatemail

+0

@thelatemail 내가> Sys.getlocale() [1] "LC_COLLATE = Spanish_Spain.1252 LC_CTYPE = Spanish_Spain.1252; LC_MONETARY = Spanish_Spain.1252; LC_NUMERIC = C; LC_TIME = Spanish_Spain.1252 " – GabyLP

답변

13

나는 비슷한 문제에 직면했을 때, 나는 stringi 패키지에서 기능 stri_trans_general를 사용 . 예를 들어 다음을 시도해보십시오. stri_trans_general(nota,"Latin-ASCII")