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

如何用Base R或dplyr统计非零Group的元素分组数及详情

分组统计与详情查询:Base R和dplyr实现方案

任务说明

需要对数据框myDF完成两项操作:

  • 统计Group≠0的Element-Group组合分组总数(预期结果为4,对应R-Group1、X-Group1、R-Group2、X-Group-3)
  • 列出这些组合分组的具体元素信息

数据定义

首先给出可复现的数据框:

myDF <- data.frame(
  Element = c("R","R","X","X","X","X","B","R","R","R","X","X","X"),
  Group = c(1,1,0,1,1,0,0,0,2,2,-3,-3,-3)
)

Base R实现方式

# 第一步:过滤掉Group=0的行
filtered_data <- myDF[myDF$Group != 0, ]

# 生成Element与Group的组合键
filtered_data$group_key <- paste(filtered_data$Element, "Group", filtered_data$Group, sep = "-")

# 1. 统计分组总数
total_groups <- length(unique(filtered_data$group_key))
cat("分组总数:", total_groups, "\n")

# 2. 查看各分组的具体元素信息
group_elements <- split(filtered_data$Element, filtered_data$group_key)
print(group_elements)

运行结果:

  • 分组总数输出:分组总数: 4
  • 分组元素详情会以列表形式展示每个组合分组对应的所有Element值

dplyr实现方式(简洁高效)

library(dplyr)

# 一次性完成过滤、分组键生成、统计与详情整理
group_result <- myDF %>%
  filter(Group != 0) %>%
  mutate(group_key = paste(Element, "Group", Group, sep = "-")) %>%
  group_by(group_key) %>%
  summarise(element_list = list(Element), .groups = "drop")

# 1. 统计分组总数
total_groups_dplyr <- nrow(group_result)
cat("分组总数:", total_groups_dplyr, "\n")

# 2. 查看分组详情
print(group_result)

运行结果:

  • 分组总数输出:分组总数: 4
  • group_result数据框会直接展示每个组合分组的名称,以及对应的Element列表

内容的提问来源于stack exchange,提问作者Village.Idyot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:35:30