2016-06-28 7 views
1

私は、列をnumercal variableからcategorical variableに変更する必要があるより大きなデータセットを持っています。データのサンプルは以下の通りです:私はcarrecode機能により、手動でそれを行うことができ、より小さなデータセットについて列数値変数の再コード

dat2 <- read.table(header=TRUE, text=" 
        Pa Abbr 
        1 MNDF 
        2 CVDE 
        3 EEED 
        4 WERD 
        5 PPOL 
        ") 
dat2 
    Pa Abbr 
1 1 MNDF 
2 2 CVDE 
3 3 EEED 
4 4 WERD 
5 5 PPOL 

:列Pa

dat1 <- read.table(header=TRUE, text=" 
        ID Pa Gu Ta 
        8645 1 Gel294 Tel452 
        6228 2 Gel294 Tel467 
        5830 3 Gel294 Tel467 
        1844 3 Gel295 Tel467 
        4461 4 Gel295 Tel467 
        2119 5 Gel294 Tel452 
        2119 5 Gel294 Tel452 
        ") 
dat1 
    ID Pa  Gu  Ta 
1 8645 1 Gel294 Tel452 
2 6228 2 Gel294 Tel467 
3 5830 3 Gel294 Tel467 
4 1844 3 Gel295 Tel467 
5 4461 4 Gel295 Tel467 
6 2119 5 Gel294 Tel452 
7 2119 5 Gel294 Tel452 

変数は、次のように置き換えする必要がありますパッケージ。

library(car) 
dat1$Pa <- recode(dat1$Pa, "1='MNDF'; 2='CVDE'; 3='EEED'; 4='WERD'; 5='PPOL'") 
dat1 
    ID Pa  Gu  Ta 
1 8645 MNDF Gel294 Tel452 
2 6228 CVDE Gel294 Tel467 
3 5830 EEED Gel294 Tel467 
4 1844 EEED Gel295 Tel467 
5 4461 WERD Gel295 Tel467 
6 2119 PPOL Gel294 Tel452 
7 2119 PPOL Gel294 Tel452 

私は、コードの手動入力を置き換えることができる適切な機能またはコードが必要です。

答えて

1

我々はbase R

dat1$Pa <- dat2$Abbr[match(dat1$Pa, dat2$Pa)] 
dat1 
# ID Pa  Gu  Ta 
#1 8645 MNDF Gel294 Tel452 
#2 6228 CVDE Gel294 Tel467 
#3 5830 EEED Gel294 Tel467 
#4 1844 EEED Gel295 Tel467 
#5 4461 WERD Gel295 Tel467 
#6 2119 PPOL Gel294 Tel452 
#7 2119 PPOL Gel294 Tel452 
から matchを使用することができます
関連する問題