2013-11-17 4 views
0

У меня есть набор данных с большим количеством повторяющихся значений в одном столбце:R: повторен колонок изменения названия

A 
A 
A 
A 
B 
B 
B 
B 

... Как я могу изменить его, что это будет так:

A1 
A2 
A3 
A4 
B1 
B2 
B3 
B4 
… 

Благодаря

+0

Будут ли они всегда сгруппированы вместе, как ваш пример, или будут случаи, подобные: 'c (A, A, A, A, B, B, B, B, A, C)'? – gung

+0

Привет и добро пожаловать в stackoverflow! Пожалуйста, прочитайте [about Stackoverflow] (http://stackoverflow.com/about) и [что спросить] (http://stackoverflow.com/help/on-topic). Как вы найдете в этих двух ссылках, вы должны «показать свою работу», а «Вопросы, требующие кода, должны включать в себя попытки решения, почему они не работают». Приветствия. – Henrik

+0

Ваш пример c (A, A, A, A, B, B, B, B, A, C) лучше всего подходит для вопроса – lroca

ответ

2

Вы можете использовать ?ave и ?seq_along для этого:

b <- c("A","A","A","A","B","B","B","B","A","C") 

ave(b, b, FUN=function(x)paste0(x, seq_along(x))) 
# [1] "A1" "A2" "A3" "A4" "B1" "B2" "B3" "B4" "A5" "C1" 
+0

Спасибо. Как функция может работать в определенной строке в data.frame? например, df $ name – lroca

+0

@ user2676173, попробуйте запустить 'b <- as.character (df $ name)' first. – gung

Смежные вопросы