我想将字符串列转换为数字以方便计算,但我也想保留值的信息。因此,我想将字符串值指定为标签。不确定人们是否在 R 中这样做,但这在 Stata 中是常见做法,因此每当您拉出表格或绘制图表时,您都可以看到标签而不是分配的数字。我遇到的问题是有超过 20 个字符串值和超过 10k 行。所以,假设我有以下数据框:
df <- data.frame(color = c("green", "green", "blue", "red", "green", "blue", "red"))
df
color
1 green
2 green
3 blue
4 red
5 green
6 blue
7 red
如何为每种颜色分配一个数字,保存字符串信息,并将其分配为值标签?
您可能想看看这个
恐怕 R 中的 data.frame 中不能有重复的行名称。如果有重复的字符串,您可能需要使用一个因子。下一个示例使用这种方法生成带有标签的条形图。
library(tidyverse)
df |>
mutate(color = factor(color)) |>
ggplot(aes(x = color)) +
geom_bar()