2016-10-20 9 views
0

저는 R이 새롭고 더 쉽게 읽을 수있는 텍스트를 만들기 위해 데이터 사전 정의를 데이터 세트에 매핑하려고합니다.누락 된 값이있는 R의 데이터 매핑

예를 들어 현재 Kaggle에있는 Ames Iowa 주택 데이터 세트의 데이터 사전을 기반으로 주택 구획을 매핑하려고합니다.

mapping <- list(
    'A'='Agriculture', 
    'C (all)'='Commercial', 
    'FV'='Floating Village Residential', 
    'I'='Industrial', 
    'RH'='Residential High Density', 
    'RL'='Residential Low Density', 
    'RP'='Residential Low Density Park', 
    'RM'='Residential Medium Density' 
) 

housingData$MSZoning <- as.factor(as.character(mapping[origData$MSZoning])) 

원래 데이터 세트에는 이러한 모든 데이터 포인트의 값이 들어 있지 않습니다.

> table(origData$MSZoning) 

C (all)  FV  RH  RL  RM 
    10  65  16 1151  218 

내 코드로 매핑 한 후에는 키 값 쌍이 정렬되지 않습니다. 예를 들어, 농업은 "C"로 매핑됩니다. 소스 데이터의 빈 값이 매핑을 포기하고 있다고 생각합니다.

> table(housingData$MSZoning, origData$MSZoning) 

           C (all) FV RH RL RM 
    Agriculture      10 0 0 0 0 
    Commercial       0 65 0 0 0 
    Floating Village Residential  0 0 16 0 0 
    Industrial       0 0 0 1151 0 
    Residential High Density   0 0 0 0 218 

누군가가 이러한 키와 값이 적절하게 정렬되도록보다 적절한 방법을 사용할 수 있습니까?

감사합니다.

+0

와우, 4.5 년 그리고 이것이 첫 번째 질문입니까? 그게 인상적입니다 ... 진심으로, 아마도'recode'가 당신에게 효과가 있을까요? 또한 몇 가지 장점이 있지만 'factor'를 사용하는 특별한 이유가 있습니까? – r2evans

+0

고마워, r2evans. 당신의 도움으로이 질문에 대답 할 수있었습니다. 요인에 관해서는 "Excellent, Good, Fair, Poor"시리즈의 코드를 복사했습니다. 나는이 시행이 요인의 가장 적절한 사용법이 아닐 수도 있다는 것에 동의한다. –

+0

(자신의 질문에 답하는 것 외에 다른 사람이 대답을 기다리는 경우가 아니라면 "받아 들여야"합니다.) – r2evans

답변

0

빠른 응답을 보내 주셔서 감사합니다. 감사합니다!

recode 명령을 사용하여이 코드를 적절히 작동시킬 수있었습니다.

library(car) 

housingData$MSZoning <- recode(housingData$MSZoning, 
    "'A'='Agriculture'; 
    'C (all)'='Commercial'; 
    'FV'='Floating Village Residential'; 
    'I'='Industrial'; 
    'RH'='Residential High Density'; 
    'RL'='Residential Low Density'; 
    'RP'='Residential Low Density Park'; 
    'RM'='Residential Medium Density'" 
) 

지금 테이블 크로스 탭을 실행하면 값 맵이 올바르게 표시됩니다.

> table (housingData$MSZoning, origData$MSZoning) 

           C (all) FV RH RL RM 
    Commercial      10 0 0 0 0 
    Floating Village Residential  0 65 0 0 0 
    Residential High Density   0 0 16 0 0 
    Residential Low Density   0 0 0 1151 0 
    Residential Medium Density   0 0 0 0 218 

다시 한번 감사드립니다!