分享
三行代码  ›  专栏  ›  技术社区  ›  Rajith Thennakoon

获取向量中唯一值的索引

  •  0
  • Rajith Thennakoon  · 技术社区  · 4 天前

    我有一个这样的向量。

    filenames <- c("kisyu2_mst.csv", "kisyu3_mst.csv", "kisyu2_mst.csv",
                   "kisyu3_mst.csv", "kisyu3_mst.csv")
    

    我需要从filenames向量中获取每个唯一值的索引

    对于 "kisyu2_mst.csv" 指数向量 c(1,3)
    对于 "kisyu3_mst.csv" 指数向量 c(2,4,5)

    最后,我需要将它插入如下列表:

    final <- list("kisyu2_mst.csv" = c(1,3), "kisyu3_mst.csv"=c(2,4,5))
    

    如何从向量中得到唯一值的索引?

    2 回复  |  直到 4 天前
        1
  •  3
  •   Ronak Shah    4 天前

    我们可以利用 split

    split(seq_along(filenames), filenames)
    
    #$kisyu2_mst.csv
    #[1] 1 3
    
    #$kisyu3_mst.csv
    #[1] 2 4 5
    
        2
  •  2
  •   zx8754    4 天前

    我们可以试试 which :

    sapply(unique(filenames), function(i) which(filenames %in% i))
    # $kisyu2_mst.csv
    # [1] 1 3
    # 
    # $kisyu3_mst.csv
    # [1] 2 4 5