R语言按月份分组报错:object of type 'closure' is not subsettable
问题解决:按月份分组时的"closure不可子集化"错误
你遇到的错误object of type 'closure' is not subsettable,本质是代码里的Date被识别成了lubridate包的Date()函数,而非你数据框里的日期列,导致floor_date无法处理函数类型的输入。
从你提供的表格截图来看,日期列的实际名称应该是Entry Date,而非Date,这是核心问题。修正后的代码如下:
# 按月份分组汇总数据 combined_months <- combined_data %>% group_by(month = lubridate::floor_date(`Entry Date`, 'month')) %>% summarize(pip_count = sum(sum_of_pip_difference))
如果你的日期列确实叫Date,那要避免和lubridate的函数重名,可以用以下两种方式修正:
- 用
.data代词明确指定列:
combined_months <- combined_data %>% group_by(month = lubridate::floor_date(.data$Date, 'month')) %>% summarize(pip_count = sum(sum_of_pip_difference))
- 用反引号包裹列名:
combined_months <- combined_data %>% group_by(month = lubridate::floor_date(`Date`, 'month')) %>% summarize(pip_count = sum(sum_of_pip_difference))
内容的提问来源于stack exchange,提问作者Fozil8
相关产品推荐
相关产品推荐

