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

如何在R中按两个变量分组计算其余变量均值并解决报错

问题解决方法

错误原因分析

  1. 分组逻辑错误:连续调用group_by()会覆盖前一次分组,无法实现双变量联合分组;且group_by行末尾缺失%>%,导致管道中断,这是触发tbl_vars错误的直接原因。
  2. 变量名笔误:代码中M1MT1应为数据实际列名M1T1。
  3. 汇总语法问题:summarise_at的list(name = mean)会生成带后缀的新列,不符合保留原列名的需求;同时未处理NA值,会导致均值结果为NA。

修正后的代码

mtmm_data1 %>%
  group_by(cntry_lan, admdw) %>%
  summarise(across(M1T1:M3T3, ~mean(.x, na.rm = TRUE)), .groups = "drop")

代码说明

  • group_by(cntry_lan, admdw):同时按两个变量分组,确保每个cntry_lan下的每个admdw分组单独计算均值。
  • across(M1T1:M3T3, ~mean(.x, na.rm = TRUE)):用across()替代已逐步淘汰的summarise_at(),对M1T1到M3T3的所有列计算均值,na.rm = TRUE忽略NA值,且保留原列名。
  • .groups = "drop":计算完成后取消分组,返回普通数据框(如需保留分组可改为"keep")。

运行结果示例

基于提供的测试数据,运行后会得到如下结果:

cntry_lanadmdwM1T1M1T2M1T3M2T1M2T2M2T3M3T1M3T2M3T3
ATGERgroup1NANANA122112
ATGERgroup2755NANANA744
ATGERgroup3765NANANA665

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:25:32