鉴于以下内容
group
0
1
2
3
4
5
6
7
8
9
10
创建新列level
以使数据看起来如下
group level
0 none
1 low
2 low
3 low
4 med
5 med
6 med
7 high
8 high
9 high
10 very_high
我目前的解决方案是输入mutate
中的每个值。有没有更好的办法?
答案 0 :(得分:1)
您可以使用cut
:
df$level <- cut(df$group, breaks = c(0,1,4,7,10,Inf), right = F, labels = c('none', 'low', 'med', 'high', 'very_high'))
df
# group level
#1 0 none
#2 1 low
#3 2 low
#4 3 low
#5 4 med
#6 5 med
#7 6 med
#8 7 high
#9 8 high
#10 9 high
#11 10 very_high
答案 1 :(得分:1)
df$level =factor(as.character(ceiling(df$group/3)),labels = c('none', 'low', 'med', 'high', 'very_high'))
df
group level
1 0 none
2 1 low
3 2 low
4 3 low
5 4 med
6 5 med
7 6 med
8 7 high
9 8 high
10 9 high
11 10 very_high