2015-02-10 11 views
8

Tak już analizowany jakiś plik XML przy użyciu pakietu XML za pomocą następującego koduusunięcia nie druku spacji nieznany (mi) kodowania

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

wszystko działało dobrze i mam oczekiwanego rezultatu

dim(data) 
## [1] 554560 13 

jedyny problem mimo, że niektóre z moich wpisów wygląda następująco

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

Próbowałem zidentyfikować kodowanie (bez powodzenia)

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 

Kodowanie nie jest moją najmocniejszą dziedziną wiedzy, czy jest jakiś prosty sposób na konwersję x po prostu

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

można podać 'dput' od' x'? –

+0

@SvenHohenstein Już udostępniłem 'dput' ... –

Odpowiedz

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

cat(x) 
# 2 irfl014 

Znaki specjalne, np. "\002", są niedrukowalnymi znakami kontrolnymi . Aby uzyskać więcej informacji, patrz here.

Można użyć następującego polecenia gsub usunąć wszystkie znaki sterujące:

gsub("[[:cntrl:]]+", "", x) 
# [1] "2 irfl014" 
Powiązane problemy