2017-09-29 11 views
1

최근에 R에서 여행을 시작한 후 마침내 물건을 사기 시작했습니다. 나는 아주 간단한 질문을하지만 나는 내가 찾고있는 답을 찾을 수 없다.리코딩 리 커트 데이터 프레임 내의 축척 - 연구 방법론에 대한 학습 R에 대한 권장 사항?

나는 리 커트 (Likert) 유형 척도를 사용하여 수집 한 설문 조사 응답의 데이터 세트를 보유하고 있습니다. 일부는 매우 강하게 반대 (1-7)에서 다른 것은 1-5 사이입니다. 데이터 집합 내의 각 열을 다시 코딩하는 간단한 방법을 찾고 있습니다. 선호하는대로 dplyr 패키지를 사용하는 것이 좋습니다. 지금까지 이걸 가지고 있습니다 :

df는 열 Q2.1_1 : Q2.5_1이 포함 된 데이터 프레임입니다. 새로운 재 코드화 된 열은 현재 요소이므로 수치가 필요합니다 (나중에 설명을 실행하고 싶습니다).

이 줄의 문제는 코드를 다시 코딩하지만 내 df 데이터 프레임 안에없는 벡터를 만드는 것입니다. df에 추가해야하는지, 아니면 df 자체 내에서 편집하는 더 좋은 방법이 있는지 확실하지 않습니다.

as.numeric(recode(df$Q2.1_1, "Very slightly or not at all"=1, .... etc)) 
+0

원래 인수를 보존 할 수 있도록 재 코딩 된 변수를 원래의 df (새 변수)로 다시 지정 했습니까? 예 : df $ newQ2 <- 귀하의 코드입니다. – lawyeR

+0

하! 그것은 내가 필요로했던 바로 그 것이었다. 나는 파이썬에서 이것을 사용하는데 익숙해 져있다. 그게 내 문제를 풀어 냈다. 감사! – D500

답변

1

난 당신 같은 뭔가를 찾고 있다고 생각 다음

mydata <- data.frame(x = c("A lot", "Some", "Not at all")) 

mydata <- mutate(mydata, x_recoded = recode(x, "A lot" = 1, "Some" = 2, "Not at all" = 3)) 

mydata 

      x x_recoded 
1  A lot   1 
2  Some   2 
3 Not at all   3 

이 코드는 다음과 같습니다

  1. 은을 만들 dplyr의 mutate() 기능을 사용하여 샘플 데이터
  2. 만들기 새 변수 x_recoded
  3. 그 자체로 다시 데이터 프레임 mydata 돌연변이 지금 변수는 as.numeric를 사용할 필요가 없습니다 숫자의 재 부호화에서 오른쪽 측에 있기 때문에 숫자입니다 그것을

recode이 추론에 x_recoded을 가지고 있으므로 .

+0

부러워 해 줘서 고마워. 내가 필요한 것. 자, 이전 예제를 사용하여, 어떻게 하나 이상의 변수를 recode합니까? mydata <- mutate (mydata, x_recoded (1:10) = recode (x1 : x10, "A lot"= 1, "Some"= 2, "전혀 아님"= 3)) – D500

+0

dplyr에는 'mutate' 같은 함수를 여러 변수에 쉽게 적용 할 수있는 mutate_at() 및 mutate_if() 변형입니다. "mutate"는 하나의 호출에서 여러 작업을 쉼표로 구분하여 처리 할 수 ​​있으므로 (기본적으로 다른 변수 이름으로 동일한 코드를 10 번 사용합니다). – treysp