根据2列中的组唯一ID创建序列号

时间:2020-10-01 15:14:24

标签: r serialization dplyr group-by mutate

我有这个数据

cluster<-c(1,1,1,1,2,2,2,2)
structure<-c(1,1,2,3,1,1,1,2)
str<-data.frame(clusters,structures)
我想根据群集和结构创建第三列,称为序列号。这是我得到以下输出的方式

serial.number<-c(1,2,1,1,1,2,3,1)
str2<-data.frame(cluster,structure,serial.number)

谢谢

3 个答案:

答案 0 :(得分:0)

如果您使用的是基数R,请尝试const {id} = this.props.match.params; + ave

seq_along

答案 1 :(得分:0)

我猜你在找这个:

library(data.table)
df <- setDT(str)
df[, serial.number := seq(.N), by = .(cluster,structure)] 

答案 2 :(得分:0)

使用dplyr

library(dplyr)
df %>%
      group_by(cluster, structure) %>%
      mutate(serial.number = row_number())

或带有data.table

library(data.table)
setDT(df)[, serial.number := rowid(cluster, structure)]