相关疑难解决方法(0)

使用向量中的x值计算元素的数量

我有一个数字向量:

numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435,
         453,435,324,34,456,56,567,65,34,435)
Run Code Online (Sandbox Code Playgroud)

如何计算值x在向量中出现的次数?

r vector count r-faq

378
推荐指数
11
解决办法
103万
查看次数

计算每个独特元素出现次数的最快方法

计算R中向量中每个唯一元素的出现次数的最快方法是什么?

到目前为止,我已经尝试了以下五个功能:

f1 <- function(x)
{
    aggregate(x, by=list(x), FUN=length)
}


f2 <- function(x)
{
    r <- rle(x)
    aggregate(r$lengths, by=list(r$values), FUN=sum)
}


f3 <- function(x)
{
    u <- unique(x)
    data.frame(Group=u, Counts=vapply(u, function(y)sum(x==y), numeric(1)))
}

f4 <- function(x)
{
    r <- rle(x)
    u <- unique(r$values)
    data.frame(Group=u, Counts=vapply(u, function(y)sum(r$lengths[r$values==y]), numeric(1)))
}

f5 <- function(x)
{
    as.data.frame(unclass(rle(sort(x))))[,2:1]
}
Run Code Online (Sandbox Code Playgroud)

他们中的一些人没有按类别给出结果,但这并不重要.以下是结果(使用包microbenchmark):

> x <- sample(1:100, size=1e3, TRUE); microbenchmark(f1(x), f2(x), f3(x), f4(x), f5(x))
Unit: microseconds
  expr      min        lq    median        uq      max neval
 f1(x) 4133.353 4230.3700 …
Run Code Online (Sandbox Code Playgroud)

performance aggregate r

15
推荐指数
2
解决办法
8539
查看次数

标签 统计

r ×2

aggregate ×1

count ×1

performance ×1

r-faq ×1

vector ×1