2015-02-10 10 views
8

Così ho analizzato alcuni file XML utilizzando il pacchetto XML utilizzando il seguente codicerimuovere gli spazi bianchi non stampabili da sconosciuti (a me) la codifica

library(XML) 
data <- xmlToDataFrame(xmlParse("Some file I can't share.xml")) 

Tutto ha funzionato bene e ho il risultato atteso

dim(data) 
## [1] 554560 13 

L'unico problema però che alcune delle mie voci si presenta come segue

x <- "2 irfl014" 
x 
## [1] "2 \002\003\004\003\005\005\006\005\002\003\004\003\005\005\006\005irfl014" 

cercato di identificare la codifica (senza successo)

Encoding(x) 
## [1] "unknown" 

library(stringi) 
stri_enc_detect(x) 
# [[1]] 
# [[1]]$Encoding 
# [1] "UTF-8"  "Shift_JIS" "GB18030" "EUC-JP" "EUC-KR" "Big5"  
# 
# [[1]]$Language 
# [1] "" "ja" "zh" "ja" "ko" "zh" 
# 
# [[1]]$Confidence 
# [1] 0.1 0.1 0.1 0.1 0.1 0.1 

codifica non è il mio forte campo di competenza, c'è un modo semplice per convertire x semplicemente

x 
## [1] "2 irfl014" 
+2

Potete fornire un '' dput' di x'? –

+0

@SvenHohenstein Ho già condiviso 'dput' ... –

risposta

10
x <- "2 \002\003\004\003\005\005\006\005\002\003\004\003\005\005\006\005irfl014" 

cat(x) 
# 2 irfl014 

I caratteri speciali, ad esempio "\002" non sono stampabili caratteri di controllo. Vedere here per ulteriori informazioni.

È possibile utilizzare il gsub seguente comando per rimuovere tutti i caratteri di controllo:

gsub("[[:cntrl:]]+", "", x) 
# [1] "2 irfl014" 
Problemi correlati