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

如何使用R语言dplyr按多分组计算不同Distance对应的Value均值

实现方法

你可以直接按分组后条件筛选计算均值的逻辑实现,代码如下:

library(dplyr)

# 示例数据(修正了原示例加载包的拼写错误,dyplyr应为dplyr)
set.seed(123)
df1 <- data.frame(matrix(ncol = 4, nrow = 36))
x <- c("Age","Location","Distance","Value")
colnames(df1) <- x
df1$Age <- rep(c(1,2), each = 18)
df1$Location <- as.character(rep(c("Central","North"), each = 9))
df1$Distance <- rep(c(0.5,1.5,2.5), each = 3)
df1$Value <- round(rnorm(36,200,25),0)

# 核心计算代码
result <- df1 %>%
  group_by(Age, Location) %>%
  summarise(
    Mean_0.5 = mean(Value[Distance == 0.5]),
    Mean_1.5_and_2.5 = mean(Value[Distance %in% c(1.5, 2.5)]),
    # 若需要直接输出两组均值的差异,可新增下面这行
    # Mean_diff = Mean_0.5 - Mean_1.5_and_2.5,
    .groups = "drop"
  )

print(result)

代码说明

  • group_by(Age, Location):按要求的两个维度对数据分组
  • summarise内分别对不同Distance区间的Value计算均值:
    • 计算Mean_0.5时仅筛选Distance等于0.5的观测
    • 计算Mean_1.5_and_2.5时筛选Distance为1.5或2.5的观测合并计算
  • .groups = "drop":取消结果的分组状态,输出常规数据框,和你给出的预期格式完全一致

运行以上代码得到的结果和你贴的预期输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:15:05