2014-03-19 91 views
0

我有一個包含名稱的數據集。 它看起來像這樣:獲取包含r中特定元素的行索引

name1,name2 
name4 
name55,name25,name88 

我有有行,其中有名稱的列其他數據集。 我想找到在第一個數據集中找到的行的索引。

這樣:

nameColumn 
name4 
name25 

索引1和2應該被發現。 我正在試圖:

which(mainDataset$namesColumn == namesDataset, arr.ind=TRUE) 

但這是不對的。 在這裏使用的運算符是否有某種類型?

幫助非常歡迎!

+0

請閱讀此:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example。你甚至不知道你的數據集存儲在哪種數據結構中。 –

+0

歡迎來到SO。使用'dput(your_data_set)'給我們一個你的數據集的例子。這就是說@ KarlForner是正確的。這真的有助於在這裏提供有用的解決方案。 –

+0

爲什麼你想要的指數呢?像mainDataset [mainDataset $ namesColumn%in%namesDataset]這樣的東西應該是mainDataset是data.frame,而namesDataset是一些相同類型的vector(即字符)。 –

回答

1

如果兩個數據集的樣子:

namesDataset <- read.csv(text = "name1,name2 
name4 
name55,name25,name88", header = FALSE) 

mainDataset <- read.csv(text = "nameColumn 
name4 
name25") 

...那麼你會發現像這樣的「mainDataset」的矢量「名稱列的名字是在「namesDataset」的指標:

which(mainDataset$nameColumn %in% unlist(namesDataset)) 
# [1] 1 2 
+0

unlist()解決了問題!謝謝,我如何驗證你的答案是正確的? – user3046636

相關問題