2012-03-01 20 views
7

sto facendo un po 'di raschiatura web di nomi in un dataframegestione di caratteri speciali, ad es. accenti in R

Per un nome come "Tomáš Rosický, ottengo un risultato "Tomáš Rosický"

ho provato

Encoding("Tomáš Rosický") # with latin1 response 

ma non era sicuro dove andare da lì per ottenere il nome originale con accenti di nuovo. giocato con iconv senza successo

sarei soddisfatto (e potrebbe anche preferire) una potenza di "Tomas Rosicky"

+0

Come hai letto il data.frame? Di solito è possibile fornire un parametro di codifica come 'fileEncoding' a' read.table'. E come ha risposto @Hong Ooi, UTF-8 sembra essere la codifica di cui hai bisogno. – Tommy

risposta

6

Hai letto in una pagina codificata in UTF-8. se x è la colonna di nomi, utilizzare Encoding(x) <- "UTF-8".

2

di fare una corretta lettura del file utilizzare la funzione di scansione:

namb <- scan(file='g:/testcodering.txt', fileEncoding='UTF-8', 
what=character(), sep='\n', allowEscapes=T) 
cat(namb) 

questo funziona anche:

namc <- readLines(con <- file('g:/testcodering.txt', "r", 
encoding='UTF-8')); close(con) 
cat(namc) 

Questa leggerà il file con gli accenti corretti

2

Un modo per esportare correttamente gli accenti:

enc2utf8(as(dataframe$columnname, "character")) 
1

Si dovrebbe usare questo:

df$colname <- iconv(df$colname, from="UTF-8", to="LATIN1") 
+0

Potresti aggiungere qualche spiegazione? – d4Rk

Problemi correlati