2016-11-29 20 views
1

テキストで正しい方法で問題を記述する方法がわからないため、例を示します。データフレーム内の文字列の出現回数を追加する

names 
1 Michael 
2 Thomas 
3 Daniel 
4 Peter 
5 Michael 
6 Thomas 
7 Ruben 
8 Thomas 

と私の所望の出力は次のとおりです:

my.data = data.frame("names" = c("Michael","Thomas","Daniel","Peter","Michael","Thomas","Ruben","Thomas")) 

います:

 names 
1 Michael 
2 Thomas 
3 Daniel 
4  Peter 
5 Michael.2 
6 Thomas.2 
7  Ruben 
8 Thomas.3 

は誰がどのように自動でそれを達成するための提案を持っています私は、次のデータフレームを」VEのより大きなデータフレームのための方法?

ありがとうございます。

答えて

1

は、我々は持っているいくつかのオプション

my.data$names <- with(my.data, sub("\\.1$", "", paste(names, ave(seq_along(names), 
     names, FUN=seq_along), sep="."))) 
my.data$names 
#[1] "Michael" "Thomas" "Daniel" "Peter"  "Michael.2" "Thomas.2" "Ruben"  "Thomas.3" 

それともmake.unique

make.unique(as.character(my.data$names)) 
#[1] "Michael" "Thomas" "Daniel" "Peter"  "Michael.1" "Thomas.1" "Ruben"  "Thomas.2" 
+0

うわー、第二の溶液は非常に簡単です。この機能が存在することを知らなかった。 – burton030

+0

@ burton030はい、それは簡単ですが、接尾辞は、あなたの期待した – akrun

+1

で、.2ではなく.1から始まりますが、私にとってはこれでも十分です。ありがとうございました。 – burton030

関連する問題