2015-04-19 44 views
0

我有一個CSV文件中的非唯一名稱列表。我想爲此列表中的每個唯一名稱分配一個ID。因此,如果數據是這樣的:在R中,如何在另一個較大列表中找到列表中元素的索引?

斯泰西
亞當
唐納德
亞當
格雷格
唐納德

我所要的輸出是這樣的:

1斯泰西
2 Adam
3 Donald
2 A壩
5格雷格
3唐納德

我已經使用了匹配()函數嘗試過,但似乎並不奏效。任何幫助將不勝感激。

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

回答

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 
+0

這對我的偉大工程。謝謝! – user1689757

相關問題