R-计算向量中的元素

问题描述

有没有一种方法可以计算向量中的元素,而无需考虑其唯一值? 例如,我有一个向量 vec <- as.vector(c("A","A","B","B"))。 我想计算向量中的元素,这样它将返回向量[1] 2 2 2 2

我尝试使用vec_count软件包中的vctrs函数

my_vec <- as.vector(c("A","B"))
my_count <- vec_count(my_vec,sort = "key")
my_count$count
[1] 4 4

但是此函数考虑向量中的唯一元素,这不是我想要的。任何想法如何做到这一点?

解决方法

由于您在此处计算连续序列,因此我们可以使用rle

rle(vec)$lengths
#[1] 2 2 2 2

data.table rleid类似:

table(data.table::rleid(vec))
#1 2 3 4 
#2 2 2 2