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
frombase 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