我想重新命名列中的重复类别"产品" (data $ Product)基于其发生的顺序。以下是数据框:
data <- data.frame(Product=c("1123Tr","5467Yr","15-f020WM","15-f020WM","15-f020WM","15-k153cl","17-f222nr","17-f222nr"),
Platform=c("caribian","flare","tease","brill","kittl","moui","mouner","fourt"),
Value = c(200,500,550,456,678,765,34,33))
下面是表格 - data.frame&#34;数据&#34;看起来像:
Product Platform Value
1123Tr caribian 200
5467Yr flare 500
15-f020WM tease 550
15-f020WM brill 456
15-f020WM kittl 678
15-k153cl moui 765
17-f222nr mouner 34
17-f222nr fourt 33
以下是期望的输出:
Product Platform Value
1123Tr caribian 200
5467Yr flare 500
15-f020WM(D1) tease 550
15-f020WM(D2) brill 456
15-f020WM(D3) kittl 678
15-k153cl moui 765
17-f222nr(D1) mouner 34
17-f222nr(D2) fourt 33
有人可以给我一些关于如何做到这一点的暗示或建议吗?
答案 0 :(得分:1)
这非常接近akrun的make.unique
。
ave
会做这样的事情:
> ave(as.character(data$Product), data$Product, FUN=function(x) if (length(x)>1) paste0(x[1], '(', seq_along(x), ')') else x[1])
[1] "1123Tr" "5467Yr" "15-f020WM(1)" "15-f020WM(2)" "15-f020WM(3)" "15-k153cl" "17-f222nr(1)" "17-f222nr(2)"