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