2017-09-30 14 views
1

지금 리 커트 (Likert) 유형의 스케일을 숫자 값으로 기록하고 있습니다. 그러나이 데이터 세트에는 여러 가지 다양한 비늘의 항목이 많이 있습니다. 예 : Q2.1_1 : Q2.1_16은 다른 설문 조사와 다른 키를 가진 리 커트 척도가있는 하나의 척도입니다. 그러나, 나는 큰 데이터 세트가 수동으로 가실 것이 일이 ..여러 리 커트 저울 재 코딩 - 모든 패키지?

final$Q2.1_1rc <- as.numeric(recode(
    final$Q2.1_1, 
    "Very slightly or not at all" = 1, 
    "A little"     = 2, 
    "Moderately"     = 3, 
    "Quite a bit"     = 4, 
    "Extremely"     = 5 
)) 

I 다음 C/P 및 변수의 이름을 변경 계속 : 지금이 순간, 내가 수동으로 다음과 같이 각 레코딩을 입력 해요 . 누구든지 이것을 코딩하는 더 짧은 방법으로 나를 도울 수 있습니까? 이것에 도움이되는 패키지가 있습니까? 아마도 함수일까요?

감사합니다.

답변

0

dplyr 패키지의 mutate_at 함수를 사용하면 여러 변수를 한 번에 다시 코딩 할 수 있습니다.

예 데이터 당신이 그들의 변수 이름의 시작 "Q2"이있는 모든 final에서 시작하고자하는 변수를 가정

library(dplyr) 
set.seed(123) 
resp <- c("Very slightly or not at all", "A little", "Moderately", "Quite a bit", "Extremely") 
final <- tibble(Q2.1_1 = sample(resp, 6, replace = TRUE), 
       Q2.2_1 = sample(resp, 6, replace = TRUE)) 

솔루션
, 당신이 할 수 있습니다 :

final %>% 
    mutate_at(vars(starts_with("Q2")), 
      funs("rc" = recode(., 
           "Very slightly or not at all" = 1, 
           "A little"     = 2, 
           "Moderately"     = 3, 
           "Quite a bit"     = 4, 
           "Extremely"     = 5))) 

#> # A tibble: 6 x 4 
#>      Q2.1_1  Q2.2_1 Q2.1_1_rc Q2.2_1_rc 
#>       <chr>  <chr>  <dbl>  <dbl> 
#> 1     A little Moderately   2   3 
#> 2     Quite a bit Extremely   4   5 
#> 3     Moderately Moderately   3   3 
#> 4     Extremely Moderately   5   3 
#> 5     Extremely Extremely   5   5 
#> 6 Very slightly or not at all Moderately   1   3 

official documentation에 명시된 바와 같이 dplyr을 시작하는 가장 좋은 장소는 데이터 과학 R의 R의 data import chapter이며 mutate_at의 사용과 관련된 구체적인 예는 here입니다.