2010-06-01 72 views
17

我有一個字符串的矢量。看看我的載體,它的awesome如何從一個字符串向量中創建一組唯一的名稱?

> awesome 
[1] "a" "b" "c" "d" "d" "e" "f" "f" 

我想提出一個新的載體,其是相同長度awesome但如果,如果必要的話,該字符串已uniqueified。例如,我需要的功能的有效輸出將

> awesome.uniqueified 
[1] "a" "b" "c" "d.1" "d.2" "e" "f.1" "f.2" 

有一個簡單的,R-thonic和美麗的方式做到這一點?我應該說我的真實生活中的名單(它不叫awesome)包含25000個微陣列探針組標識符。

當我着手編寫一些通用函數(我敢肯定我可以這樣做)時,我總是很緊張,因爲我相信一些R大師在過去碰到過這個問題,用一些令人難以置信的算法這甚至不必在矢量中存儲超過一半的元素。我只是不確定他們可能稱之爲什麼。可能不是uniqueify

回答

19

嘗試make.unique()在幫助頁面的第一個例子是已經噴滴:

make.unique(c("a", "a", "a")) 
[1] "a" "a.1" "a.2" 

幫助頁列出托馬斯敏卡爲作者。他買了啤酒1天:)

+1

,使整個答案... make.unique(strsplit(真棒,「」)[[1]]) 你需要這個詞分成一個字符矢量 – John 2010-06-01 21:08:15

+0

發佈標題和原始示例顯示'字符串向量',所以我不認爲我們需要'strsplit()'。 – 2010-06-01 23:56:03

+0

真的這是我在stackoverflow上的最清晰的問題/回答體驗。非常感謝!如果我有機會,肯定會得到明卡博士一杯啤酒。我想,按照這種模式,我欠他啤酒給EP,而不是他開發'大門'符號?也許應該爲他喝啤酒。 – 2010-06-02 00:51:44

相關問題