相关疑难解决方法(0)

R:从数值变量和自定义/开放/单值间隔创建分类变量

我经常发现自己试图从数值变量+用户提供的范围集创建分类变量.

例如,假设我有一个带有数字变量的data.frame,df$V并且想要创建一个新变量df$VCAT,以便:

  • df$VCAT= 0如果df$V等于0
  • df$VCAT= 1如果df$V介于0到10之间(即(0,10))
  • df$VCAT= 2 df$V等于10(即[10,10])
  • df$VCAT= 3是df$V10到20之间(即(10,20))
  • df$VCAT= 4 df$V大于或等于20(即[20,Inf])

我目前通过以下方式对自己的"评分函数"进行硬编码来做到这一点:

df = data.frame(V = seq(1,100))
df = df %>% mutate(VCAT = (V>0) + (V==10) + 2*(V>10) + (V>=20))
Run Code Online (Sandbox Code Playgroud)

我想知道在R中是否有更简单的hacky方法,最好使用dplyr(这样我可以链接命令).理想情况下,我正在寻找一个可以使用的短函数,mutate它将接收变量V和描述范围的向量,例如buckets.请注意,这里buckets可能没有以最佳方式描述,因为我不清楚如何允许用户自定义范围的端点.

r intervals binning categorical-data dplyr

8
推荐指数
1
解决办法
2000
查看次数

标签 统计

binning ×1

categorical-data ×1

dplyr ×1

intervals ×1

r ×1