2014-03-13 6 views
0

요인을 사용하고 조작하는 방법에 대한 일반적인 질문이 있습니다. R은 행렬에서 다른 모드를 허용하지 않기 때문에 R은 종종 요인으로 작용합니다. 실제로는 이러한 열을 숫자로 유지하는 것이 좋습니다. 같은 요소로 작업 할 때요인, 수준, R 구문 설명

내가주의 : 당신이 두 개의 유사한 요인이있을 때

  • (예 : 1 사이의 모든 값 5) 다른 열, as.numeric()에 의해 다수의 첫 번째 열 계수를 강요하는 것은 잘 작동 . as.numeric을 통해 두 번째, 세 번째 또는 네 번째를 강요하면 항상 모든 "요소"에 1이 추가됩니다. 왜?

  • as.doubleas.numeric 실제로 대부분 동일하다 가정

    go$V4 <- as.double(go$V4) 
    

    go[,4] <- as.numeric(levels(go[,4]))[go[,4]] 
    

의 차이가있는 것 같습니다, 차이는 다른 곳이다하지만 난하지 않습니다 그것.

구문 전문가가 있습니까?

+0

다른 데이터 형식을 사용하는 경우 행렬을 사용하지 않아도이 문제가 발생하지 않습니다. 대신에 list, data.frame 또는 data.table을 사용하십시오. 인자를 숫자로 강요하려면 먼저 문자로 만들어야합니다 :'as.numeric (as.character (yourfactor))'. – Roland

답변

0

매트릭스 요구 사항의 b/c를 강요하는 것에 관한 진술은 간단히 잘못되었습니다. (R 행렬은 요인 변수를 보유 할 수 없습니다.) 아마 당신은 data.frame을 생각하고있을 것입니다. 는 R 자주 묻는 질문 말한다로서 당신은 사용할 필요가 :

go$V4 <- as.numeric(as. character(go$V4)) 

숫자 벡터는 모든 문자 벡터에 (c()와) 연결된 경우, 즉시 "문자"모드로 강제된다. 텍스트 필드의 열에 숫자가 아닌 문자가 있으면 입력시에도 같은 결과가 발생합니다.