次のようなデータフレームがあります。
id = c("A","B","C","A","C","C")
val = c(5,4,6,7,10,99)
df = data.frame(id, val)
df
id val
A 5
B 4
C 6
A 7
C 10
C 99
id
ここで、列 (A、B、C...)を再配置し、対応する を保持してから、文字 E で始まるval
新しい列を追加し、その後に最初の列の数を数える 3 桁を追加します。コードは次のとおりです。newid
id
id2 = c("A","A","B","C","C","C")
val2 = c(5,7,4,6,10,99)
newid = c("E001","E002","E001","E001","E002","E003")
df2 = data.frame(id2, val2, newid)
df2
最終結果は次のとおりです。
id2 val2 newid
A 5 E001
A 7 E002
B 4 E001
C 6 E001
C 10 E002
C 99 E003
これを行う効率的な方法はありますか?