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

在R语言中将列值分组为类别并对比Team A与Team B

在R中整理数据并对比Team A与Team B

步骤1:构造/导入数据

先把你的数据转换成R的数据框:

df <- data.frame(
  Organization = c("A", "Cat", "Dog", "Pig", "B", "Lion", "Tiger", "Elephant"),
  Team_A = c(10, 55, 22, 52, 12, 32, 43, 85),
  Team_B = c(23, 41, 33, 85, 12, 44, 55, 69),
  stringsAsFactors = FALSE
)

步骤2:整理数据,添加类别列

使用dplyr和tidyr包将A、B转换为类别标签,移除原类别行:

library(dplyr)
library(tidyr)

df_clean <- df %>%
  # 标记类别行,其他行设为NA
  mutate(Category = ifelse(Organization %in% c("A", "B"), Organization, NA)) %>%
  # 向下填充类别值,让每个数据行匹配对应的类别
  fill(Category, .direction = "down") %>%
  # 移除A、B所在的行
  filter(!Organization %in% c("A", "B"))

处理后的数据结构:

> df_clean
  Organization Team_A Team_B Category
1          Cat     55     41        A
2          Dog     22     33        A
3          Pig     52     85        A
4         Lion     32     44        B
5        Tiger     43     55        B
6     Elephant     85     69        B

步骤3:进行Team A与Team B的对比

方式1:计算差异值与汇总统计

添加差值列,并按类别统计总和、均值:

# 计算每个条目的Team A - Team B差值
df_clean <- df_clean %>%
  mutate(Difference = Team_A - Team_B)

# 按类别汇总
summary_stats <- df_clean %>%
  group_by(Category) %>%
  summarise(
    总得分_TeamA = sum(Team_A),
    总得分_TeamB = sum(Team_B),
    平均得分_TeamA = mean(Team_A),
    平均得分_TeamB = mean(Team_B),
    平均差值 = mean(Difference)
  )

> summary_stats
# A tibble: 2 × 6
  Category 总得分_TeamA 总得分_TeamB 平均得分_TeamA 平均得分_TeamB 平均差值
  <chr>          <dbl>        <dbl>          <dbl>          <dbl>    <dbl>
1 A                129          159           43             53      -10
2 B                160          168           53.3           56       -2.67

方式2:可视化对比

用ggplot2绘制分组条形图,直观展示每个类别下Team A和Team B的数值差异:

library(ggplot2)

# 转换为长格式方便绘图
df_long <- df_clean %>%
  pivot_longer(cols = c(Team_A, Team_B), names_to = "Team", values_to = "Score")

ggplot(df_long, aes(x = Organization, y = Score, fill = Team)) +
  geom_bar(stat = "identity", position = "dodge", width = 0.7) +
  facet_wrap(~Category, scales = "free_x") +
  theme_minimal() +
  labs(title = "Team A vs Team B 得分对比", x = "组织", y = "得分") +
  scale_fill_manual(values = c("Team_A" = "#2E86AB", "Team_B" = "#F24C4C"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:57:37