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

使用dplyr的mutate函数为数据框求和列时报错的问题咨询

问题分析与修复方案

错误成因

你碰到的这个报错,本质是dplyr的mutate()函数要求必须先指定要操作的目标数据框,也就是它的第一个参数.data。你的代码里直接写了total_sum = sum(orders$numbers),完全没把orders数据框传给mutate(),函数根本不知道要处理哪份数据,所以才会抛出".data参数缺失,无默认值"的错误。

修复方法

这里有两种符合dplyr规范的正确写法,推荐用第一种链式编程的方式,代码可读性更强:

方式1:使用管道符%>%(推荐)

管道符的作用是把前面的数据对象传递给后面的函数,完美适配dplyr的操作风格:

library(dplyr)
# 把结果重新赋值给orders,也可以换个新变量名避免覆盖原数据
orders <- orders %>% 
  mutate(total_sum = sum(numbers))

这里orders %>%会自动把数据框传入mutate(),函数就能识别要操作的数据集,然后计算numbers列的整体总和,生成新列total_sum。

方式2:直接传入数据框作为第一个参数

如果暂时不习惯管道符,也可以直接把orders作为mutate()的第一个参数传入:

library(dplyr)
orders <- mutate(orders, total_sum = sum(numbers))

这个写法和管道版的功能完全一致,只是语法形式不同。

小补充:这样生成的total_sum列,每一行的值都会是numbers列的总和(因为sum(numbers)是对整个列求和)。如果你的需求是分组求和,只需要在mutate()前加上group_by(分组列名)即可,不过从你的问题描述来看,应该是要整列的总和,所以上面的写法就足够啦。

内容的提问来源于stack exchange,提问作者A.Coder47

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:52:36