有没有一种方法可以将字符变量编码为完整数据集中的数字变量

问题描述

我正在尝试转换当代群体的编码方式。

当前,它们的字符格式为大约40个组的“ 240009T2017”,“ 240009T2018”,“ 240056P2018”,“ 240108T2016”。我想将它们重新编码为1,2,3,4,...

我从“ R:将字符变量编码为数字

”中找到了一些答案。
x <- c("240009T2017","240009T2018","240056P2018","240108T2016")
dat$hyn <- match(x,unique(x))

但是我不确定如何将其转换为整个数据集。理想情况下,每当“ 240009T2017”出现在“当代”组列中时,它将转换为1。

谢谢!

解决方法

您可以使用一个因素来解决这个问题,它将处理重复的值。这里的代码:

#Data
x <- c("240009T2017","240009T2018","240056P2018","240108T2016","240009T2017")
#Conversion to factor
y <- as.numeric(as.factor(x))

输出:

x
[1] "240009T2017" "240009T2018" "240056P2018" "240108T2016" "240009T2017"

y
[1] 1 2 3 4 1