将字符转换为数字然后再转换回字符

时间:2018-01-10 03:07:11

标签: r

我想知道在R中是否可以将字符向量转换为数值,然后将这些数值转换回原始字符?

例如,我的代码是:

data <- c("red","blue","green","red","yellow")
factor_data <- factor(data)
num_data <- as.numeric(factor_data)
print(num_data)

我会得到

3 1 2 3 4

其中蓝色= 1,绿色= 2,红色= 3,黄色= 4

有没有办法可以使用num_data并获得相应的颜色字符?

我的尝试是代码:

(factor_data)[num_data]

但那只是让我回答:

green red blue  green red

与原始颜色矢量不同。

1 个答案:

答案 0 :(得分:3)

您可以使用因子级别有效恢复原始字符向量。

levels(factor_data)[num_data]
# [1] "red"    "blue"   "green"  "red"    "yellow"

问题数据:

data <- c("red","blue","green","red","yellow")
factor_data <- factor(data)
num_data <- as.numeric(factor_data)