2010-06-01 99 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

相关问题