2014-12-08 2 views
3

.sav 파일을 RStudio로 읽으려고합니다. 이 파일에는 스페인 설문 조사의 데이터가 포함되어 있습니다.이 파일을 R로 읽을 때 - 기본 텍스트 인코딩이 이미 ISO-8859-1로 설정되어 있어도 특수 문자 표시가 올바르지 않습니다. 이 PSPP에서 "군용 트럭"로 올바르게 표시에도 불구하고 R에서 비 ASCII 문자, .sav 파일에서 읽기

"Cami<c3><b3>n" 

예를 들어, 단어 "군용 트럭"가 나타납니다.

install.packages("memisc") 
jcv2014 <- as.data.set(spss.system.file('myfile.sav')) 

나중에, 난 그냥 변수 레이블 목록을 만들고 싶었, 그래서 나는이 (가) 다음과 같은 한 :

library(foreign) 
jcv2014.spss <- read.spss("myfile.sav", to.data.frame=FALSE, use.value.labels=FALSE) 
jcv2014_vars <- attr(jcv2014.spss, "variable.labels") 

(잘 모르겠어요

내가 무슨 짓을 이것이 최선의 방법이지만 작동하는 경우)

어쨌든 이번에는 적절한 악센트를 얻지 못했지만 다른 종류의 인코딩이있었습니다 :

,363,210

있어야했다 변수 레이블은 "¿ 가야 calificación 르 다리아 ..."대신 내가 적절한 문자를하는 방법을 잘 모르겠어요

"\302\277Qu\303\251 calificaci\303\263n le dar\303\255a..." 

로 등장하지만 그들은 PSPP에 올바르게 나타납니다. R에서 기본 텍스트 인코딩을 ISO-8859-1 및 UTF-8로 변경해 보았습니다. 나는 원본 파일이 무엇에 코드화되었는지는 모르지만 그 파일 중 하나 일 것이라고 추측했다.

아이디어가 있으십니까?

그리고 도움이된다면 R 버전 3.1.1과 OS X Yosemite 버전 10.10.1이 있고 SPSS가 아닌 PSPP를 사용하고 있습니다.

미리 감사드립니다.

+0

기본 텍스트 인코딩을 정확히 설정 했습니까? 또한 원래 파일의 인코딩을 알아야합니다. PSPP를 체크인 할 수있는 방법이 있습니까? [this] (http://pspp.benpfaff.org/~blp/pspp-master/20130708030519/dev-guide/html_node/Internationalisation.html#Internationalisation)에 따르면 인코딩이 사전에 설정되어있는 것처럼 보입니다. 어쩌면 PSPP에서'display dictionary.'를 확인하십시오. 'spss.system.file'에는 인코딩 옵션이없는 것 같지만'read.spss'는'reencode ='매개 변수를 가지고 있습니다. – MrFlick

답변

2

데이터를 읽은 후에 인코딩을 설정할 수 있습니까?

# Here's your sentence 
s <- "\302\277Qu\303\251 calificaci\303\263n le dar\303\255a..." 

# it has no encoding 
Encoding(s) 
# [1] "unknown" 

# but if you specify UTF-8, then it shows up correctly 
iconv(s, 'UTF-8') 
# [1] "¿Qué calificación le daría..." 

# This also works 
Encoding(s) <- 'UTF-8' 
s 
# [1] "¿Qué calificación le daría..." 

다음은 나의 sessionInfo() 호출 결과입니다. 너도 네 게시해야한다.

> sessionInfo() 
R version 3.1.1 (2014-07-10) 
Platform: x86_64-apple-darwin13.1.0 (64-bit) 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] reshape2_1.4  hexbin_1.27.0 ggplot2_1.0.0 data.table_1.9.2 yaml_2.1.13  
[6] redshift_0.4  RJDBC_0.2-4  rJava_0.9-6  DBI_0.3.1  

loaded via a namespace (and not attached): 
[1] colorspace_1.2-4 digest_0.6.4  grid_3.1.1  gtable_0.1.2  labeling_0.2  
[6] lattice_0.20-29 MASS_7.3-33  munsell_0.4.2 plyr_1.8.1  proto_0.3-10  
[11] Rcpp_0.11.2  scales_0.2.4  stringr_0.6.2 tools_3.1.1 

업데이트 : UTF-8을 지원하는 로캘이없는 것 같습니다. 다음은 시스템의 각 카테고리에 대한 로켈 설정입니다. Sys.setLocale()을 사용하고 시스템에서 하나씩 업데이트 할 수도 있습니다 (또는 점진적으로 각각을 테스트 할 필요가 없다고 생각하면 LC_ALL 만 사용하십시오). ?Sys.setLocale 자세한 정보는

cat_str <- c("LC_COLLATE", "LC_CTYPE", "LC_MONETARY", "LC_NUMERIC", 
      "LC_TIME", "LC_MESSAGES", "LC_PAPER", "LC_MEASUREMENT") 
sapply(cat_str, Sys.getlocale) 

# LC_COLLATE  LC_CTYPE LC_MONETARY  LC_NUMERIC  LC_TIME LC_MESSAGES 
# "en_US.UTF-8" "en_US.UTF-8" "en_US.UTF-8"   "C" "en_US.UTF-8" "en_US.UTF-8" 
# LC_PAPER LC_MEASUREMENT 
# ""    "" 
+0

다른 결과가 나타납니다. R Studio 버전과'sessionInfo()'의 결과를 게시하십시오 – arvi1000

+0

고마워요!> sessionInfo() R 버전 3.1.1 (2014-07-10) 플랫폼 : x86_64-apple-darwin10.8.0 (64 비트) 로캘 : [ 1] C 부착베이스 패키지 : [1] 그래픽 grDevices 유틸 셋 방식베이스 다른 장착 패키지 통계 : [1] memisc_0.96-10 MASS_7.3-33 lattice_0.20-29 가 통해로드 네임 스페이스 (첨부되지 않음) : [1] car_2.0-21 grid_3.1.1 nnet_7.3-8 tools_3.1.1 – Mabyn

+0

(위의 편집 참조, 어제부터) – arvi1000