Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 记录列数值变量_R_Recode - Fatal编程技术网

R 记录列数值变量

R 记录列数值变量,r,recode,R,Recode,我有一个更大的数据集,需要将列数值变量更改为分类变量。数据样本如下: dat1 <- read.table(header=TRUE, text=" ID Pa Gu Ta 8645 1 Gel294 Tel452 6228 2 Gel294 Tel467 5830 3 Gel294 Tel467

我有一个更大的数据集,需要将列
数值变量
更改为
分类变量
。数据样本如下:

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
对于较小的数据集,我可以通过
car
package中的
recode
功能手动完成

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
库(车)

dat1$Pa我们可以使用
match
from
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
dat1$Pa
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