在R中,如何在另一个更大的列表中找到列表中元素的索引?

时间:2015-04-19 00:58:32

标签: r unique-index

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

斯泰西
   亚当
   唐纳德
   亚当
   格雷格
   唐纳德

我希望输出是这样的:

1 Stacy
   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

1 个答案:

答案 0 :(得分:2)

    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