在R中,當具有冗餘命名的向量時,爲什麼不可能使用選擇運算符檢索命名向量中的所有元素?在R中索引冗餘命名的向量
v <- c(1,2,3,4,5)
names(v) <- c("a","b","c","c","a")
v["c"] ## Returns only 3, not c(3,4)
它看起來如R假定矢量名稱是唯一的,只檢索的第一個元素在它的名稱相匹配的選擇操作參數的向量。
這是一種優化嗎?如果我們能夠在具有相同名稱屬性的矢量中選擇多個元素,會不會有好處? 確保使用索引操作符時返回的元素數與索引向量中的元素數相同的要點是什麼?
爲什麼你想要一個非唯一名稱列表? – 2012-05-08 13:27:35
不直接相關,但瞭解[make.names](http://stat.ethz.ch/R-manual/R-devel/library/base/html/make.names.html)函數通常適用於刪除多餘的名稱而不會有太多的用戶干擾 – Chase
我的意圖是使用矢量作爲查找,從例如基因符號標識爲entrezdatabaseIDs。在這種情況下,名稱(v)中的幾個基因符號ID可能映射到v中的同一個entrezdatabaseID,從而給名稱(v)賦予冗餘。 – Tony