2016-12-23 2 views
1

내가 .sav (SPSS)을 읽을 수있는 haven 라이브러리를 사용하고 있습니다로 변경 표시 벡터 값의 일부를 읽을 R.사용 (SPSS_ 파일) .sav 읽기 : 문자열 또는 요소

에 파일을 labelledvector입니다. 여기

하나의 예입니다

> str(df$instructional_practice) 
Class 'labelled' atomic [1:4136] 2 2 6 6 8 8 NaN NaN 17 1 ... 
    ..- attr(*, "label")= chr "intructional practice teacher is using when signaled" 
    ..- attr(*, "format.spss")= chr "F8.2" 
    ..- attr(*, "labels")= Named num [1:18] 1 2 3 4 5 6 7 8 9 10 ... 
    .. ..- attr(*, "names")= chr [1:18] "1 Lecture" "2 Seatwk-Ind" "3 Review-Ind" "4 Seatwk-Grp" ... 

어떻게이 vector의 값이 레이블 이름이 될 수 있을까요?

답변

1

당신은 요인에 표시된 벡터를 변환 haven::as_factor을 사용할 수 있습니다, 라벨을 레벨로 사용합니다.

개별 벡터에서이를 사용할 수 있습니다

df$instructional_practice = as_factor(df$instructional_practice) 

그러나 당신은 또한 전체 data.frame에 사용할 수 있습니다. 기본적으로 data.frame에서 as_factor을 사용하면 모든 레이블을 레이블이있는 변수의 요소 수준으로 변환합니다.

df = as_factor(df) 
1

지금은 R 요소와 매우 흡사합니다. (모호하지만) R 요소가 필요하거나 문자 벡터를 원합니다. 현재 숫자 값을 대체 값을 가진 R 문자 벡터를 원하는 경우에 당신은 labels 속성의 이름에 대한 인덱스로 숫자 값을 사용할 수 있습니다

newvec <- names(attr(f$instructional_practice , "labels"))[f$instructional_practice] 
+0

이것은 물론 작동합니다. @aosmith는 단순한/피난처의 일부인 것을 기본으로하여 어떤 경우에는 바람직하다고 생각합니다. –

관련 문제