You need to enable JavaScript to run this app. R使用group_by与mutate新增列时报Unexpected '='错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

R使用group_by与mutate新增列时报Unexpected '='错误如何解决

R dplyr分组计算新增列报错解决方案

报错原因

该报错是mutate函数的赋值语法错误导致的:

  • dplyr的管道操作中,mutate接收的是上游group_by传递过来的分组数据集,赋值左侧直接写新列名即可,不需要额外加原始数据集的data$前缀。这种带$的全局对象引用写法不符合mutate的参数语法规则,所以会触发「意外的'='」报错。
  • 额外说明:即使语法允许,直接使用data$my_new_column也会导致分组计算的结果和原始数据集索引不匹配,无法正确把分组均值匹配到每一行。

修复方案

直接去掉赋值左侧的data$前缀即可,修改后的代码如下:

library(dplyr)
# 将分组均值作为新列追加到原数据集
data <- data %>% 
  group_by(A, B) %>%
  mutate(my_new_column = mean(C)) %>%
  ungroup() # 非强制要求,建议添加,避免后续未分组的操作出现异常

如果你只需要保留A、B分组和对应均值的聚合结果,不需要保留原始数据的所有行,可以把mutate替换为summarise:

data_agg <- data %>% 
  group_by(A, B) %>%
  summarise(avg_C = mean(C)) %>%
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 17:36:01