You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RStudio中创建因子变量按体重分组并添加到数据框

R语言体重分组代码问题修正

原代码错误点

  • 开头三行生成随机数的语句未赋值,属于无效代码可删除
  • 未正确引用数据框中的体重列:需要使用DF$Weight调用数据框DF里的体重列,直接写weight或rnormR无法识别对应变量
  • 区间判断语法错误:判断体重在60-70区间需要使用DF$Weight >=60 & DF$Weight <=70,原代码中weight = 61 - 70的写法完全不成立,单等号在R中是赋值操作而非判断
  • 分组完成后未将生成的分组变量添加回原数据框

基于原逻辑的修正代码

# 创建示例数据框
DF <- data.frame(Height = rnorm(50, 170, 5),
                 Weight = rnorm(50, 65, 8)) 

# 初始化分组因子
weight.group = factor(NA, levels = c("<60", "60-70", ">70"))
# 匹配<60的样本
idx = which(DF$Weight < 60)
weight.group[idx] = "<60"
# 匹配60-70的样本
idx = which(DF$Weight >= 60 & DF$Weight <= 70)
weight.group[idx] = "60-70"
# 匹配>70的样本
idx = which(DF$Weight > 70)
weight.group[idx] = ">70"

# 将分组列添加回原数据框
DF$weight.group <- weight.group

更简便的官方函数实现

R内置的cut函数专门用于连续变量分组,不需要手动写多次判断,代码更简洁不易出错:

DF <- data.frame(Height = rnorm(50, 170, 5),
                 Weight = rnorm(50, 65, 8))

DF$weight.group <- cut(DF$Weight,
                       breaks = c(-Inf, 60, 70, Inf),
                       labels = c("<60", "60-70", ">70"),
                       right = TRUE) 
# right参数控制区间闭合方向:right=TRUE表示区间左开右闭,70会被分到60-70组;right=FALSE表示左闭右开,70会被分到>70组,可按需调整

内容的提问来源于stack exchange,提问作者Not a Wrench

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:39:02