【问题标题】:In R, how do I find the indices of elements in a list in another larger list?在 R 中,如何在另一个更大的列表中找到列表中元素的索引?
【发布时间】:2015-04-19 00:58:31
【问题描述】:

我有一个 CSV 文件中的非唯一名称列表。我想为此列表中的每个唯一名称分配一个 id。所以如果数据是这样的:

史黛西
亚当
唐纳德
亚当
格雷格
唐纳德

我希望输出是这样的:

1 斯泰西
2 亚当
3 唐纳德
2 亚当
5 格雷格
3 唐纳德

我尝试过使用 match() 函数,但这似乎不起作用。任何帮助将不胜感激。

data <- read.csv(file = "mock_data.csv", header = TRUE)
uniqueFirstNames <- unique(data["first_name"])
paste('Number of unique first names: ', nrow(uniqueFirstNames))
indices <- match(x = uniqueFirstNames, table = data["first_name"])

上面的指数目前给了我一个 NA

【问题讨论】:

    标签: r unique-index


    【解决方案1】:
        df <- data.frame(names = c("Stacy", "Adam","Donald","Adam","Greg","Donald"))
    
        ##using factor
        df$flag <- with(df, as.numeric(factor(names,levels=unique(names) )))
    
        ##Using match
        df$flag2 <- with(df, match(names, unique(names)))
    
        names    flag  flag2
        Stacy    1     1
        Adam     2     2
        Donald   3     3
        Adam     2     2
        Greg     4     4
        Donald   3     3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 2018-04-02
      相关资源
      最近更新 更多