我有一個資料框,有一列作為顏色代碼從 1-5
| color code |
| 1 |
| 3 |
| 3 |
| 5 |
| 2 |
每個顏色代碼表示 1=黃色、2=白色、3=黑色、4=藍色、5=棕色
如何創建一個新列,為每個顏色代碼分配一個顏色名稱,如下所示?
| color code |color name|
| 1 | Yellow |
| 3 | Black |
| 3 | White |
| 5 | Brown |
| 2 | White |
uj5u.com熱心網友回復:
您可以定義一個因子變數來執行此操作:
dat <- data.frame(
color_code = c(1,3,3,5,2,4)
)
color_codes = c(
`1` = "Yellow", `2` ="White", `3` = "Black", `4` = "Blue", `5` = "Brown"
)
dat$color_name <- factor(
dat$color_code,
levels = as.integer(names(color_codes)),
labels = color_codes
)
dat
# color_code color_name
# 1 1 Yellow
# 2 3 Black
# 3 3 Black
# 4 5 Brown
# 5 2 White
# 6 4 Blue
uj5u.com熱心網友回復:
您可以使用factor
dat$color_name <- factor(dat$color_code,
levels = 1:5,
labels=c("Yellow", "White", "Black", "Blue", "Brown"))
> dat
color_code color_name
1 1 Yellow
2 3 Black
3 3 Black
4 5 Brown
5 2 White
6 4 Blue
uj5u.com熱心網友回復:
解決您的問題的一種可能方法:
dat$color_name = c("Yellow", "White", "Black", "Blue", "Brown")[dat$color_code]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521624.html
標籤:r
上一篇:生成包含前導零的數字序列
