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

data.frame报错:unused argument(by=StoreType)问题求助

解决你的DataFrame分组计算问题

嘿,我来帮你搞定这个报错问题!

首先得搞清楚为啥会报错:你用的data.frame方括号[]语法不对——[.data.frame这个函数根本不支持by参数,而且你也不能直接把聚合函数mean()放在方括号的列位置里,这就是报错提示“unused argument (by = StoreType)”的核心原因。

下面给你两种常用的正确写法,选你习惯的就行:

方法一:用dplyr(tidyverse风格,代码更清晰)

这是现在数据分析里很流行的写法,可读性强,步骤明确:

# 如果还没装dplyr先安装
# install.packages("dplyr")
library(dplyr)

# 按需求生成新dataframe
new_df <- merged.tables %>%
  filter(Open == 1) %>%  # 先筛选Open等于1的行
  group_by(StoreType) %>%  # 按StoreType分组
  summarise(Avg_Sales = mean(na.omit(Sales)))  # 计算每组Sales的平均值(自动忽略NA)

方法二:用Base R的aggregate函数(不用装额外包)

如果你不想装新包,用R自带的函数也能搞定:

new_df <- aggregate(
  Sales ~ StoreType,  # 指定要计算的变量和分组变量
  data = merged.tables[merged.tables$Open == 1, ],  # 先筛选Open=1的子数据集
  FUN = function(x) mean(na.omit(x))  # 定义计算逻辑:忽略NA后求平均
)

简单总结下:你之前的错误是把分组聚合的逻辑硬塞进了dataframe的子集操作里,这不符合R的语法规则,换成上面两种专门做分组聚合的写法就没问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:14:11