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

在R中按subject对指定condition值求均值并生成新数据框

实现方法

可以用两种常见方式实现需求,分别是基于tidyverse的管道式写法和原生R写法:

方法一:使用dplyr(tidyverse生态)

先加载dplyr包,再分三步处理:生成聚合数据、提取test4数据、合并排序:

library(dplyr)

# 生成aggregate组的均值数据
aggregate_data <- example %>%
  filter(condition %in% c("test1", "test2", "test3")) %>%
  group_by(subject) %>%
  summarise(condition = "aggregate", value = mean(value), .groups = "drop")

# 提取原数据中的test4行
test4_data <- example %>%
  filter(condition == "test4")

# 合并两个数据集并按subject排序,匹配示例结果格式
example_solution <- bind_rows(aggregate_data, test4_data) %>%
  arrange(subject, condition)

方法二:原生R写法(无需额外包)

用原生函数完成聚合、筛选和合并:

# 计算test1-test3的subject均值,生成aggregate组数据
aggregate_data <- aggregate(value ~ subject, 
                            data = example[example$condition %in% c("test1", "test2", "test3"), ],
                            FUN = mean)
aggregate_data$condition <- "aggregate"
# 调整列顺序与原数据一致
aggregate_data <- aggregate_data[, c("subject", "condition", "value")]

# 提取test4的行数据
test4_data <- example[example$condition == "test4", ]

# 合并并排序得到最终结果
example_solution <- rbind(aggregate_data, test4_data)
example_solution <- example_solution[order(example_solution$subject, example_solution$condition), ]

两种方法运行后得到的example_solution都和你给出的示例结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:45:20