r语言 - 如何基于相同的列值分配批处理 ID



我对将批处理 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 

我想将基于列 c2 的批处理 ID 添加到 c4。

导致:

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]

通过基本 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

最新更新