2014-01-20 1 views
2

SPSS 파일이 있지만 SPSS가 없습니다.SPSS를 R로 읽을 때 attr (*, "value.labels")이란 무엇입니까?

re-encoding from CP1252 
Warning message: 
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels, : 
    duplicated levels in factors are deprecated 

만약 내가 제대로 이해하고, 인코딩 알림 문제 (없는

library(foreign) 
dat <- read.spss("file.sav", to.data.frame=TRUE) 

내가 경고를 얻을 : 그래서 나는 그것을 사용 열면 R.

에서 그것을 열려 저는 UTF-8 로켈입니다.)하지만 레벨에 대한 경고는 무엇을 의미합니까?

내가 사용하여 파일을 열 경우 :

dat <- read.spss("file.sav", to.data.frame=TRUE, use.value.labels = FALSE) 

경고가 사라를,하지만 난 내가 무엇을 할 것이 맞는지 확실하지 않다.

pt_art : atomic 1 1 1 1 1 1 1 1 1 1 ... 
    ..- attr(*, "value.labels")= Named chr "2" "1" 
    .. ..- attr(*, "names")= chr "IPT" "VT" 

attr(*, "value.labels")은 무엇을 의미 하는가 : str(dat) 호출 또한

는 나에게 같은 출력을 제공? 나는 "pt_art"가 "심리 요법의 유형"을 의미하고 "IPT"와 "VT"가 두 종류의 치료 유형이고 "2"와 "1"이 그 유형을 나타내는 숫자 코드임을 알고 있습니다. 그래서 우리는 레벨과 라벨을 R에 넣지 만 어떻게 그 라벨을 R로 올바르게 옮길 수 있습니까?

답변

2

중복 값을 포함하는 labels 인수를 사용하여 요인을 정의하고 정의 할 때 경고가 발생합니다.

(x <- sample(letters[1:4], 10, replace = TRUE)) 
## [1] "b" "c" "d" "d" "b" "c" "d" "c" "c" "c" 
factor(x, levels = x) 
## [1] b c d d b c d c c c 
## Levels: b c d d b c d c c c 
## Warning message: 
## In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels, : 
## duplicated levels will not be allowed in factors anymore 

SPSS는 일반적으로 (R의 요소가되어야하는) 범주 형 변수를 나타 내기 위해 값 레이블을 사용합니다. 그러나 ?read.spss 도움말 페이지에서이 섹션을 확인하십시오.

때때로 SPSS에서, 값 라벨 ( 누락 된 데이터의 다른 유형을 구분하기 위해, 예를 들어) 연속 변수의 일부 값에 추가됩니다, 당신은 요소로 변환 이러한 변수를 싶지 않을 것입니다. 'max.value.labels'을 설정하면 개의 고유 값이 많은 변수가 값 레이블을 가지고 있어도 인수로 으로 변환되지 않도록 지정할 수 있습니다. 또한 값 레이블이없는 값이 누락되지 않은 경우 변수 은 요소로 변환되지 않습니다. 그런 다음 값 레이블이 변수의 'value.labels' '속성 에 반환됩니다.