如何根据相同的列值分配批次ID

时间:2017-01-24 15:09:58

标签: r dataframe

我对将批次ID分配给具有相同列的行有疑问。

我有下表:

c1 c2 c3 c4 c5
a  b  c  d  e 
a  a  b  c  d
a  b  b  d  e
a  b  c  d  e
a  a  b  c  d
b  b  c  d  e 

我想根据colunms c2到c4添加批次ID。

结果:

c1 c2 c3 c4 c5 BID
a  b  c  d  e  1
a  a  b  c  d  2
a  b  b  d  e  3
a  b  c  d  e  1
a  a  b  c  d  2
b  b  c  d  e  1

请提供帮助,请在代码中使用列名代替列号(c2c3c4代替df[,2:4]

1 个答案:

答案 0 :(得分:1)

通过基础R的想法,

match(do.call(paste, df[c('c2', 'c3', 'c4')]), unique(do.call(paste, df[c('c2', 'c3', 'c4')])))
#[1] 1 2 3 1 2 1