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

如何在Base R中对列表元素进行分组统计(含大列表优化方案)

列表向量元素的分组统计方案

你有一个由多个向量组成的列表,结构如下:

list(c(1,2), c('a', 'b'), c('a', 'b'), c(2,3)) -> li
# 输出结构:
# [[1]]
# [1] 1 2
# 
# [[2]]
# [1] "a" "b"
# 
# [[3]]
# [1] "a" "b"
# 
# [[4]]
# [1] 2 3

想要得到类似table()函数输出的分组统计结果,统计每个向量的出现次数:

Factor     c(1,2) c('a', 'b') c(2,3)
Freq           1        2        1 

由于列表的每个元素是向量,无法直接用table()统计,因此需要先将每个子向量合并为单个字符串,再进行统计。

解决方案

直接使用以下代码即可完成合并与统计:

sapply(li, paste, collapse = "-") |> table()

代码说明

  • sapply(li, paste, collapse = "-"):遍历列表li中的每个向量元素,通过paste()函数将向量内的元素以-为分隔符合并成单个字符串,最终得到一个字符向量。
  • |> table():借助管道符将合并后的字符向量传入table()函数,统计每个字符串(对应原列表中的向量)的出现频率。

该方案能够高效处理包含50万个元素的列表,满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:42:35