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

按Class分组计算Apple的均值(字符变量)问题求助

按Class分组计算Apple的均值

你需要先把字符型的Fruit变量转换成数值型的指示变量(标记是否为Apple),再按Class分组计算均值——这个均值本质就是每组中Apple的占比。下面提供两种常用实现方法:

方法一:使用dplyr包(tidyverse风格)

先加载dplyr,然后通过mutate生成指示变量,再分组汇总:

library(dplyr)

df %>%
  mutate(is_apple = ifelse(Fruit == "Apple", 1, 0)) %>%
  group_by(Class) %>%
  summarise(apple_proportion = mean(is_apple))

运行后会得到:

# A tibble: 2 × 2
  Class apple_proportion
  <int>            <dbl>
1     0            0.667
2     1            0.4

方法二:基础R实现(无需额外包)

可以直接用aggregate函数,不用提前创建新列:

aggregate(Fruit ~ Class, data = df, FUN = function(x) mean(x == "Apple"))

或者分步创建指示变量再计算:

# 生成是否为Apple的数值列
df$is_apple <- as.integer(df$Fruit == "Apple")
# 分组计算均值
aggregate(is_apple ~ Class, data = df, FUN = mean)

逻辑说明

字符型变量本身无法计算均值,我们通过x == "Apple"生成布尔值(TRUE/FALSE),R会自动把TRUE识别为1、FALSE识别为0,所以计算均值就等价于求每组中Apple的占比,这就是你要的"均值"结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:47:10