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

tidyverse中group_by与summarise处理因子变量失效问题咨询

问题产生原因

你的原始gender列存储的是数值1和2,在调用factor()函数转换因子时,你直接将levels参数设置为了字符串"male"和"female",和原始数据的取值完全不匹配,R无法找到对应匹配项,会把所有gender值转换为NA,因此分组统计时只会生成唯一的NA分组,计算的结果就是整体age的均值。

解决方法

你需要把原始数值和对应的性别标签做关联,调整因子转换逻辑即可,有两种常用实现方式:

  • 方式1:保留原始数值为因子levels,通过labels参数映射性别标签
data <- data%>%
  mutate(gender = factor(gender, levels = c(1,2), labels = c("male", "female")))
  • 方式2:先将原始数值替换为对应的性别文本,再转换为因子
data <- data%>%
  mutate(gender = dplyr::case_match(gender, 1 ~ "male", 2 ~ "female"),
         gender = factor(gender, levels = c("male", "female")))

调整后再运行分组统计代码即可得到预期结果:

# 运行结果示例
# A tibble: 2 × 2
  gender  mean
  <fct>  <dbl>
1 male    21.2
2 female  23.2

内容的提问来源于stack exchange,提问作者Davin Díaz García

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:54:05