설문 조사를 분석하기 위해 R을 사용하고 있습니다. 설문 조사 응답자가 각각의 질문에 어떻게 대답했는지에 따라 몇 개의 열에 1 ~ 10 번이 포함되어 있습니다. 1-10 스케일을 1-3 스케일로 변경하고 싶습니다. 이를 수행하는 간단한 방법이 있습니까? 복잡한 for 루프와 if 문을 작성했지만 R에 더 나은 방법이있을 것 같습니다.
1-3 번 숫자를 1로 바꾸고 싶습니다. 숫자 4와 8에서 2; 숫자 5-7 ~ 3, 숫자 9 및 10 ~ NA.
따라서 아래 스 니펫에서 OriginalColumn은 NewColumn이됩니다.
OriginalColumn=c(4,9,1,10,8,3,2,7,5,6)
NewColumn=c(2,NA,1,NA,2,1,1,3,3,3)
미친 for 루프없이이 작업을 쉽게 수행 할 수있는 방법이 있습니까? 감사!
위치 인덱싱을 사용하여이를 수행 할 수 있습니다.
> c(1,1,1,2,3,3,3,2,NA,NA)[OriginalColumn]
[1] 2 NA 1 NA 2 1 1 3 3 3
ifelse
벡터화 되어 있기 때문에 반복 / 중첩보다 낫습니다 (따라서 읽기, 쓰기 및 이해가 더 쉽고 빠를 것입니다). 본질적으로 교체하려는 모든 값에 대한 새 값을 포함하는 새 벡터를 만듭니다. 따라서 값 1 : 3의 경우 1을 원하므로 벡터의 처음 세 요소는 1이됩니다. 그런 다음 원래 벡터를 사용하여 원래 값의 위치를 기반으로 새 값을 추출합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다