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

如何在R中基于唯一参与者计算水果选择占比?

解决方案:计算每种水果的参与者选择占比

核心思路是先统计每种水果被多少不同参与者选择,再除以总参与者数量,而非总选择次数。以下是两种实现方式:

方法1:使用dplyr包

library(dplyr)

# 计算总参与者数量
total_participants <- n_distinct(data$id)

# 生成结果
fruit_participant_ratio <- data %>%
  distinct(id, fruit) %>%  # 去重:保留每个参与者选过的唯一水果记录
  count(fruit, name = "participant_count") %>%  # 统计每个水果的参与者数
  mutate(ratio = participant_count / total_participants)  # 计算占比

print(fruit_participant_ratio)

输出结果:

fruit participant_count     ratio
1      apple                 3 1.0000000
2 grapefruit                 1 0.3333333
3     grapes                 1 0.3333333
4     orange                 2 0.6666667
5       pear                 2 0.6666667

方法2:使用Base R

无需加载额外包即可实现:

# 提取每个参与者与水果的唯一组合
unique_fruit_id <- unique(data[, c("id", "fruit")])

# 统计每个水果的参与者数量
fruit_counts <- table(unique_fruit_id$fruit)

# 计算占比并转为数据框
result_df <- data.frame(
  fruit = names(fruit_counts),
  participant_count = as.numeric(fruit_counts),
  ratio = as.numeric(prop.table(fruit_counts))
)

print(result_df)

两种方法都能得到正确结果:apple被所有3名参与者选择,占比为100%,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:57:13