【问题标题】:R function that return a vector with position occurence of each value? [duplicate]R函数返回每个值的位置出现的向量? [复制]
【发布时间】:2021-02-25 09:14:32
【问题描述】:

我正在寻找一个函数,它返回一个向量,其中包含向量的每个值的位置/计数。

这里是一个例子:

我有:

vec<-c("A","A","A","B","B","C")

我想要:

c(1,2,3,1,2,1)

我创建了一个有效的函数,但我正在寻找一种更快的方法来获取它,因为我有一个大数据集。

非常感谢您

【问题讨论】:

  • sequence(rle(vec)$lengths)

标签: r performance vector position find-occurrences


【解决方案1】:

一种方法是在基础 R 中使用 ave

vec<-c("A","A","A","B","B","C")
result <- as.integer(ave(vec, vec, FUN = seq_along))
result
[1] 1 2 3 1 2 1

【讨论】:

    【解决方案2】:

    我们可以从data.table使用rowid

    library(data.table)
    rowid(vec)
    #[1] 1 2 3 1 2 1
    

    【讨论】:

      猜你喜欢
      • 2011-01-20
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 2017-05-15
      • 1970-01-01
      相关资源
      最近更新 更多