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

如何在R Studio中通过中位数分割为数据框创建新列?

中位数分割并新增分组列的解决方案

你当前的代码是把数据拆成了两个独立的数据框,但要在原数据框新增一列标记分组,有两种简单实现方式:

方法1:Base R 实现

直接用ifelse函数生成分组标记,一步到位:

# 计算中位数(加na.rm处理缺失值,避免报错)
medianpcr <- median(honourswork$PCR.x, na.rm = TRUE)
# 新增分组列到原数据框
honourswork$PCR_group <- ifelse(honourswork$PCR.x <= medianpcr, "低分组", "高分组")

方法2:Tidyverse(dplyr)实现

如果你习惯用dplyr的链式操作,写法更连贯:

library(dplyr)

honourswork <- honourswork %>%
  mutate(
    # 临时计算中位数,用于分组判断
    temp_median = median(PCR.x, na.rm = TRUE),
    # 生成分组标签
    PCR_group = case_when(
      PCR.x <= temp_median ~ "低分组",
      TRUE ~ "高分组"
    )
  ) %>%
  select(-temp_median) # 可选:移除临时生成的中位数列

补充说明

  • 分组标签可以自定义,比如用数字标记:ifelse(honourswork$PCR.x <= medianpcr, 0, 1)
  • 如果仍需要拆分出两个独立数据框,可基于新增的分组列筛选:
highmedian <- filter(honourswork, PCR_group == "低分组")
lowmedian <- filter(honourswork, PCR_group == "高分组")

内容的提问来源于stack exchange,提问作者waqar mohiuddin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:45:43