我遇到了一些问题,我认为这是一个简单的问题。
我有以下向量(实际上是数据集中的一列)
example_data <- c(1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 4, 5, 4, 5, 6, 5, 3, 3, 2, 4, 5, 6, 4, 5, 6, 6, 5)
我想找到 c(4, 5, 6)
发生的次数,完全按照这个顺序。在上面的示例中,这将是 4 次。
我尝试使用 %in%
和 grepl()
但这些都没有成功。我也尝试过将向量折叠成一个序列并以这种方式匹配,但没有成功。
我只是觉得我错过了一些非常明显的东西,所以任何帮助将不胜感激。
最佳答案
一种方法是使用 shift
将值的 lead
(来自 data.table
)获取到 列表
,然后与感兴趣的值 4、5、6 比较后,将其归约
为逻辑向量
,并得到 TRUE 的sum
元素
library(data.table)
sum(Reduce(`&`, Map(`==`, shift(example_data, 0:2, type = 'lead'), 4:6)))
#[1] 4
或将数据粘贴到字符串中,并使用 stringr
中的 str_count
获取模式“456”的计数
library(stringr)
str_count(paste(example_data, collapse=""), '456')
#[1] 4
关于R 计算特定整数序列的实例数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53546973/