R에서 요인에서 숫자 변수로 변환하는 중 문제 발생


11

요인 변수를 숫자로 변환하고 싶지만 as.numeric기대 효과가 없습니다.

아래는 원래 변수를 기반으로 한 숫자 버전의 변수에 대한 요약 통계를 얻습니다. 수단은 1까지 계속 카운트합니다 ... 아마도 요인의 수준에 이름과 숫자가 모두 있고 그 숫자 as.numeric를 사용하도록 설계 되었을 때 새 변수의 값이 이름에서 나올 것으로 기대 합니까?

> describe.by(as.numeric(df$sch), df$sch)

group: 
  var    n mean sd median trimmed mad min max range skew kurtosis se
1   1 5389    1  0      1       1   0   1   1     0  NaN      NaN  0
--------------------------------------------------------- 
group: 001
  var  n mean sd median trimmed mad min max range skew kurtosis se
1   1 19    2  0      2       2   0   2   2     0  NaN      NaN  0
--------------------------------------------------------- 
group: 002
  var  n mean sd median trimmed mad min max range skew kurtosis se
1   1 54    3  0      3       3   0   3   3     0  NaN      NaN  0
--------------------------------------------------------- 

1
추가 한 새 태그를 제거했습니다. 그것들은 나에게 너무 일반적이고 차별적이지 않은 것처럼 보이거나, 또는 요소가 너무 좁은 경우에 (R base의 함수이기 때문에) 분실 한 것으로 생각되면 태그를 다시 지정하십시오.
JMS

답변:


28

맞습니다 : as.numeric(factor)R이 해당 요인의 수준에 할당하는 숫자를 반환합니다. 당신은 시도 할 수 있습니다as.numeric(as.character(factor))


4
이 답변에 따르면 stackoverflow.com/a/3418192/476907 as.numeric(levels(f))[f] 이 권장되고 약간 더 효율적입니다as.numeric(as.character(f))
discipulus

감사합니다! 이 답변은 저에게 많은 도움이되었습니다 :)
Yasha

13

질문과 대답FAQ 7.10 입니다. 예, 요인은 1에서 레벨 수까지의 정수로 저장되며 숫자는 기본 코드를 나타냅니다. FAQ는 숫자로 변환하는 두 가지 방법을 제공합니다.

그러나 일반적으로 이는 데이터를 읽을 때 R이 데이터를 숫자 대신 인자로 취급하는 원인이 되었기 때문에 발생합니다 (종종 비 숫자 문자). read.table 또는 이와 유사한 것을 사용하는 경우 원시 데이터를 수정하거나 (숫자가 아닌 부분을 NA로 변환) colClasses 인수를 사용하는 것이 더 좋습니다.


1
values.tmp <-sapply (possibleValues, as.numeric); values.nonnumeric <-values.tmp [is.na (values.tmp)]
russellpierce
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.