2017-10-05 10 views
0

저는 R에 익숙하지 않아 숫자 변수 을 문자열에 1,2,3로 다시 코딩하려고합니다. 나는 그것을하는 방법을 보았지만 나는 왜 이 작동하지 않는지 알지 못한다. 아마도 문자열에서 숫자로되어야하기 때문일까? 이것이 내가 얻은 것이며, 미리 감사드립니다!문자열을 레코드 번호로 바꾸기 R

cars$origin = as.factor(cars$origin) 
cars$origin 
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 3 2 2 2 2 2 1 1 1 1 1 3 1 3 1 1 
[35] 1 1 1 1 1 1 1 1 2 2 2 3 3 2 1 3 1 2 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 
[69] 2 2 3 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 1 2 1 3 1 1 1 
Levels: 1 2 3 

cars$origin <- recode(cars$origin, "1='american';2='european';3='japan'") 

오류 : 인수 2는 이름

+0

을 ?? 나는 그것이 잘 써야한다고 생각했지만 오류는 거기에 남아있다 ... –

답변

3

기능 factor가에 대한 인수 labels이 아니라 이름을 지정해야합니다 : 정말

cars$origin = factor(cars$origin, 
    levels = c(1, 2, 3), 
    labels = c("american", "european", "japan")) 
+0

그것은 꽤 논리 다 !! 문제가 해결되었습니다. 감사합니다! 1 –

+0

이미 레벨 번호가 지정되어있는이 특정 경우에는 'levels' 매개 변수를 지정하지 않아도 작동합니다. – Jaap

+0

맞음, @Jaap. 이 특정 상황에서 우리는'levels' 매개 변수를 건너 뛸 수 있습니다. 그래도'factor '의 정확한 동작을 모른다면 모든 질문에 답할 수 있습니다. – Gedrox