R - 计算向量中的元素
R - Counting elements in a vector
有没有办法在不考虑其唯一值的情况下对向量中的元素进行计数?
例如,我有一个向量 vec <- as.vector(c("A","A","B","B","A","A","B","B"))
。
我想计算向量中的元素,因此它将 return 成为 [1] 2 2 2 2
.
的向量
我尝试使用 vctrs
包中的 vec_count
函数:
my_vec <- as.vector(c("A","A","B","B","A","A","B","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
有没有办法在不考虑其唯一值的情况下对向量中的元素进行计数?
例如,我有一个向量 vec <- as.vector(c("A","A","B","B","A","A","B","B"))
。
我想计算向量中的元素,因此它将 return 成为 [1] 2 2 2 2
.
我尝试使用 vctrs
包中的 vec_count
函数:
my_vec <- as.vector(c("A","A","B","B","A","A","B","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