我想知道在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
与原始颜色矢量不同。
答案 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)