首页 > 解决方案 > 对某个变量的数字范围进行分组

问题描述

我想在我的数据框中对某一列的值进行分组。

集群 1:1 到 249

集群 2:250 至 1499

集群 3:>= 1500

假设我有一个包含 2 个变量(V1,V2)的数据框:

V1 <- c(1,5,25,100,200, 1000, 10000)
V2 <- c(1,2,3,2,5,9, 4)
DF <- data.frame(V1, V2)

这将导致:

     V1 V2
1     1  1
2     5  2
3    25  3
4   100  2
5   200  5
6  1000  9
7 10000  4

到目前为止,我尝试过:

DF %>% mutate(V1=recode(V1, `200`= 1))

它确实将 200 重新编码为 1(对于集群 1),但我不知道如何将其应用于一系列数字(1 到 249、250 到 1499 以及所有等于或高于 1500 的数字)。

只需将数字放在冒号运算符之间,例如:

DF %>% mutate(V1=recode(V1, `1:249`= 1))

返回错误:

警告消息:mutate()列有问题V1。ℹ V1 = recode(V1, 1:249 = 1)。ℹ 强制引入的 NA

有没有办法解决这个问题?谢谢。

标签: rdplyrrangerecode

解决方案


推荐阅读