1

numercal variable 列をに変更する必要がある大きなデータセットがありますcategorical variable。データのサンプルは次のとおりです。

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

列の変数はPa、次のものに置き換える必要があります。

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

より小さなデータセットの場合、パッケージrecode内の関数によって手動で行うことができます。car

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

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

4

1 に答える 1

1

matchから使用できます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
于 2016-06-28T15:46:43.267 に答える