Подтвердить что ты не робот

Как создать уникальный набор имен из вектора строк?

У меня есть вектор строк. Проверьте мой вектор, он awesome:

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

Я хотел бы создать новый вектор с такой же длиной, как awesome, но где, если необходимо, строки были уникальны. Например, допустимый вывод моей желаемой функции будет

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

Есть ли простой, R-тонический и красивый способ сделать это? Я должен сказать, что мой список в реальной жизни (он не называется awesome) содержит идентификаторы 25000ish mircoarray probeset.

Я всегда нервничаю, когда приступаю к написанию небольших общих функций (что, я уверен, я мог бы сделать), поскольку я уверен, что какой-то R-гуру столкнулся с этой проблемой в прошлом, прибил ее каким-то невероятным алгоритмом, даже не нужно хранить более половины элемента в векторе. Я просто не знаю, как они это назвали. Вероятно, не uniqueify.

4b9b3361

Ответ 1

Попробуйте make.unique(), где первый пример справочной страницы уже находится на месте:

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

Страница справки перечисляет Томаса Минку как автора. Купите ему пиво в один прекрасный день:)