2012-06-08 13 views
6

cerco di aprire un file .csv codifica UTF-8 che contiene (tradizionali) i caratteri cinesi in R. Per qualche ragione, R visualizza le informazioni a volte come i caratteri cinesi, a volte come unicode personaggi.Visualizzazione codifica UTF-8 caratteri cinesi in R

Per esempio:

data <-read.csv("mydata.csv", encoding="UTF-8") 

data 

produrrà caratteri Unicode, mentre:

data <-read.csv("mydata.csv", encoding="UTF-8") 

data[,1] 

sarà effettivamente visualizzare i caratteri cinesi.

Se lo trasformo in una matrice, visualizzerà anche caratteri cinesi, ma se provo a guardare i dati (comando Visualizza (dati) o correzione (dati)) è di nuovo in unicode.

ho chiesto consiglio da parte di persone che fanno uso di un Mac (sto usando un PC, Windows 7), e alcuni di loro ho caratteri cinesi in tutto, altri no. Ho provato a salvare invece i dati originali come tabella e a leggerli in R in questo modo, lo stesso risultato. Ho provato a eseguire lo script in RStudio, Revolution R e RGui. Ho provato a regolare la localizzazione (ad es. In cinese), ma R non mi ha permesso di cambiarla, altrimenti il ​​risultato era senza senso invece di caratteri unicode.

mio locale corrente è:

"LC_COLLATE = French_Switzerland.1252; LC_CTYPE = French_Switzerland.1252; LC_MONETARY = French_Switzerland.1252; LC_NUMERIC = C; LC_TIME = French_Switzerland.1252"

Qualsiasi aiuto per ottenere R per visualizzare in modo coerente i caratteri cinesi sarebbe molto apprezzato ...

+0

Hm, questo si presenta come un bug. Per chi fosse interessato, è facilmente riproducibile con questo codice: 'x = c ('中華民族'); x; data.frame (x)'.Non provare a incollare quel codice nell'Editor R, incollalo nella console o non funzionerà. – nograpes

+0

Vedere la mia risposta su http://stackoverflow.com/questions/22876746/how-to-read-data-in-utf-8-format-in-r – Sathish

risposta

2

Non un bug, più un fraintendimento delle conversioni di sistema del tipo sottostante (il tipo character e lo factor tipo) durante la costruzione di data.frame.

Si potrebbe iniziare prima con data <-read.csv("mydata.csv", encoding="UTF-8", stringsAsFactors=FALSE) che renderà i caratteri cinesi del tipo character e quindi stampandoli si dovrebbe vedere l'attesa.

@nograpes: simile x=c('中華民族');x; y <- data.frame(x, stringsAsFactors=FALSE) e tutto dovrebbe essere ok.

+1

In realtà, questo non funziona per me. Prova a eseguire quel codice e poi a 'print (y)'. Ho fatto [una domanda a riguardo] (http://stackoverflow.com/questions/17715956/why-do-some-unicode-characters-display-in-matrices-but-not-data-frames-in-r) più direttamente affrontando il problema. – nograpes

+0

È interessante notare che ora funziona per me (nel frattempo sono passato a un altro computer, il che potrebbe o non potrebbe fare la differenza). Grazie! – user1445297

1

Nel mio caso, la codifica UTF-8 non funziona nel mio r. Ma la codifica Gb * funziona. Ma l'utf8 funziona in ubuntu. Per prima cosa devi capire la codifica predefinita nel tuo sistema operativo. E codificalo così com'è. Excel non può codificarlo come utf8 correttamente anche se afferma che salva come etf8.

(1) Scarica "Apri foglio".

(2) Aprire in modo corretto. You Ccan fa scorrere il metodo di codifica fino a che non vedi vedere il carattere cinese visualizzato nelle finestre di anteprima.

(3) Salvarlo come utf-8 (se si desidera che UTF-8). (UTF-8 non è la soluzione a tutti i problemi, è DEVI conosce la codifica di default nel sistema prima)

Problemi correlati