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

如何用R统计向量中指定长度数值组合的重复次数

R语言统计向量指定长度数值组合的重复次数

方法一:基础R实现(无需额外包)

先定义目标向量和指定的组合长度:

test <- c(1,2,3,4,1,2,3,4,4,4,4,4)
window_size <- 4

生成所有符合长度要求的滑动窗口组合,并统计重复次数:

# 生成所有连续的指定长度组合,转成字符串便于统计
combinations <- sapply(1:(length(test) - window_size + 1), function(i) {
  paste(test[i:(i + window_size - 1)], collapse = " ")
})

# 统计每个组合的出现次数
count_result <- table(combinations)

执行后直接输出count_result就能得到:

combinations
1 2 3 4 4 4 4 4 
          2           1 

如果需要结构化的数据框格式,可转换为:

result_df <- as.data.frame(count_result, responseName = "count")

输出的result_df为:

combinations count
1    1 2 3 4     2
2    4 4 4 4     1

方法二:用zoo包简化操作

如果习惯用现成的滑动窗口函数,可借助zoo包:

library(zoo)

# 生成滑动窗口组合列表
comb_list <- rollapply(test, window_size, list)
# 转换为字符串后统计次数
count_result <- table(sapply(comb_list, paste, collapse = " "))

得到的结果和基础R方法完全一致。

原理说明

核心逻辑是通过滑动窗口遍历向量,每次截取连续的window_size个元素作为一个组合;由于R的table()函数无法直接统计列表类型的组合,因此将每个组合转换为空格分隔的字符串,再进行频次统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:45:46