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

在R语言中使用aggregate求和整数时出现无效字符类型错误求助

问题解决:aggregate函数求和报错的原因及修正

错误原因

你执行aggregate(penalty, list(number = penalty$n), FUN = sum)时出错,是因为你把整个penalty数据框传给了aggregate的第一个参数。这个数据框里包含字符类型的win_conditions列,sum()函数无法对字符型数据执行求和操作——尽管n列是整数,但aggregate会尝试对数据框的每一列应用sum,这就触发了类型错误。

正确的解决方法

方法1:直接求和(最简单)

如果只是想对n列的所有数值求和,不需要用aggregate,直接调用sum()即可:

sum(penalty$n)

方法2:正确使用aggregate

如果一定要用aggregate,需要明确指定只对n列进行操作:

# 按win_conditions分组求和(保留分组信息)
aggregate(n ~ win_conditions, data = penalty, FUN = sum)

# 仅对n列整体求和
aggregate(penalty$n, FUN = sum)

方法3:使用tidyverse风格的语法(推荐)

既然你已经加载了tidyverse,用dplyr的summarize会更符合你的代码风格:

penalty %>% summarize(total_n = sum(n))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:50:30