R语言按Condition与TargetWord分组统计列中A值的平均占比
R语言实现分组统计WPcondition为A的占比
数据集样例
Condition TargetWord WordProduced WPcondition 1 Target1 table A 1 Target1 word B 1 Target1 chair A 1 Target1 pole C 1 Target1 skate D 1 Target2 car B 1 Target2 house A 1 Target2 shoes A 1 Target2 girl A 1 Target2 life C 2 Target3 computer D 2 Target3 ball B 2 Target3 court F 2 Target3 plane C 2 Target3 sky D 2 Target4 tree A 2 Target4 five C 2 Target4 help D 2 Target4 shave A 2 Target4 love B
实现方案
注:以下代码中df为你导入到R环境中的数据集对象名,若你导入时使用了其他名称,替换为对应名称即可。
方案1:使用dplyr包(tidyverse生态,代码易读性高)
- 安装加载包(已安装可跳过安装步骤)
# 安装包 install.packages("dplyr") # 加载包 library(dplyr)
- 数据处理代码
result <- df %>% # 按Condition和TargetWord分组 group_by(Condition, TargetWord) %>% # 统计WPcondition为A的数量除以5得到均值 summarise(MeanWPcondition = sum(WPcondition == "A")/5, .groups = "drop")
注:你给出的示例输出数值存在笔误,按实际数据计算结果为:
Target1对应2个A → 2/5=0.4,Target2对应3个A →3/5=0.6,Target3对应0个A→0,Target4对应2个A→0.4
方案2:使用base R实现,无需额外安装包
result <- aggregate(WPcondition ~ Condition + TargetWord, data = df, FUN = function(x) sum(x == "A")/5) # 重命名列名 colnames(result)[3] <- "MeanWPcondition"
输出结果查看
运行上述代码后,打印result即可得到你需要的三字段结果表。
内容的提问来源于stack exchange,提问作者Ajrhjnd
相关产品推荐
相关产品推荐

