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

如何在数据框列表中按pred列分组统计各因子观测行数

解决数据框列表的因子计数问题

核心问题原因

count()函数仅支持单个数据框作为输入,直接作用于列表会触发类型不匹配错误,因此需要遍历列表中的每个数据框,逐个执行计数操作。


方法1:dplyr + purrr(推荐,符合你的使用习惯)

利用purrr的map系列函数实现列表迭代,结合dplyr的count完成统计:

  1. 加载依赖包
library(dplyr)
library(purrr)
  1. 对列表中每个数据框单独计数
    假设你的数据框列表名为df_list,执行以下代码:
# 得到每个数据框的计数结果组成的新列表
result_list <- map(df_list, ~count(.x, pred))

result_list中的每个元素对应原列表中一个数据框的pred因子计数,格式和单个数据框的输出完全一致。

  1. 合并所有结果为单个数据框(可选)
    如果需要把所有数据框的计数结果合并,并标记来源,使用map_dfr:
result_combined <- map_dfr(df_list, ~count(.x, pred), .id = "df_id")

新增的df_id列会标记每个计数来自原列表中的第几个数据框(若原列表有命名,则使用列表名称作为值)。


方法2:Base R(无需额外包)

用基础R的lapply实现遍历:

# 得到单个计数结果组成的列表
result_list_base <- lapply(df_list, function(df) count(df, pred))

# 合并为单个数据框并标记来源
result_combined_base <- do.call(rbind, 
                                Map(cbind, 
                                    df_id = if(is.null(names(df_list))) seq_along(df_list) else names(df_list),
                                    lapply(df_list, function(df) count(df, pred))
                                    )
                               )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:40:28