2014-10-15 5 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

Какая версия ОС и R вы используете? Когда я запускаю 'nota <-" Este sábado enfrentarán a un equipo. "; iconv (nota, to = "ASCII // TRANSLIT") ', я получаю« Este sabado enfrentaran a un equipo ».« Выполнение R 3.1.1 в Windows. – MrFlick

+1

@MrFlick - это, вероятно, также связано с локалью. Вышеприведенный код работает для меня одинаково, но я нахожусь в локали «English_United States» в соответствии с 'Sys.getlocale()' – 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

Когда я сталкивался с подобной проблемой, я использовал функцию stri_trans_general из stringi пакета , Например, вы можете попробовать: stri_trans_general(nota,"Latin-ASCII")

Смежные вопросы