R

[R] Add an index (or counter) to a dataframe by group

슈퍼짱짱 2021. 3. 26. 16:36
반응형

예로 다음과 같이 1이 3번, 2가 5번 반복되는 A 열을 가진 dataframe 이 있다 하자.

 

data <- data.frame(A = c(rep(1,3), rep(2,5)))

 

 

이를 다음과 같이 같은 A 열에 대해 각각 1부터 n 까지 counter를 새 컬럼으로 붙여주려 한다.

 

 

방법은 다음과 같다.

 

library(data.table)
library(tidyverse)

data <- setDT(data)[, cnt := 1:.N, by = A]

 

1. data.table 로 type을 변경한다.

2. 1부터 N까지 count하는 새 컬럼을 생성한다. 이 때, 기준이 되는 컬럼을 by parameter로 넣어준다.

 

반응형