R:如何在不使用循环的情况下找到按唯一向量排序的所有重复向量值的索引?

标签 r vector unique indexof

我有一个这样的整数向量:

a <- c(2,3,4,1,2,1,3,5,6,3,2)
values<-c(1,2,3,4,5,6)

我想为我的向量中的每个唯一值(正在排序的唯一值)列出它们出现的位置。我想要的输出:

rep_indx<-data.frame(c(4,6),c(1,5,11),c(2,7,10),c(3),c(8),c(9))

最佳答案

split 非常适合这里,它返回 a 中每个唯一值的索引列表:

indList <- split(seq_along(a), a)
indList
# $`1`
# [1] 4 6
# 
# $`2`
# [1]  1  5 11
# 
# $`3`
# [1]  2  7 10
# 
# $`4`
# [1] 3
# 
# $`5`
# [1] 8
# 
# $`6`
# [1] 9

您可以通过将值作为字符传递来访问索引,即:

indList[["1"]]
# [1] 4 6

关于R:如何在不使用循环的情况下找到按唯一向量排序的所有重复向量值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128345/

相关文章:

r - tbl_summary : How to set t. 测试列保留 2 位小数 (gtsummary)

c++ - 为什么 vector.erase 会删除我所有的重复项?

MySQL id序列

r - 编码 : knitr and child files

r - R中使用tcltk的多个组合框

r - 如何在 R 中为悬停文本配置千位分隔符?

arrays - Cuda更改数组中的单个值

python - 从文本中提取单热向量

Mysql获取数据库中重复的唯一id的数量

php - MySQL - 列组合的唯一约束 : avoiding error?