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

In R, how do I find the indices of elements in a list in another larger list?

我在 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

    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