「id1」、「id2」、「id3」、「name」の 4 つの列がdata.frame
あり、「id1」、「id2」、「id3」は非常に長い文字列です。
新しいキーを生成するには、「id1」、「id2」、および「id3」を接続する必要があります。「id1」+「id2」+「id3」が重複している可能性があります。つまり、それぞれの新しいキーは、「id1」+「id2」+「id3」の値の新しい組み合わせです。
「key1」、「key2」などのシンプルで短い新しいキーが欲しい...
「id1」、「id2」、「id3」、「name」の 4 つの列がdata.frame
あり、「id1」、「id2」、「id3」は非常に長い文字列です。
新しいキーを生成するには、「id1」、「id2」、および「id3」を接続する必要があります。「id1」+「id2」+「id3」が重複している可能性があります。つまり、それぞれの新しいキーは、「id1」+「id2」+「id3」の値の新しい組み合わせです。
「key1」、「key2」などのシンプルで短い新しいキーが欲しい...
.GRP
これについてはfrom "data.table"を使用することをお勧めします。また、50 万行のデータに苦労することもありません。
library(data.table)
as.data.table(DF)[, combined := .GRP, by = names(DF)][]
# key1 key2 key3 combined
# 1: b a b 1
# 2: b b a 2
# 3: a b b 3
# 4: b a b 1
# 5: b a a 4
# 6: b b b 5
# 7: b b a 2
# 8: a a b 6
# 9: b a a 4
# 10: b b b 5
結合されたキーを他のキーのソートされたセットに従ってソートする必要がある場合はsetkey
、上記の手順を実行する前に を使用します。