본문 바로가기

Data Science : Study/5. R

R : 이중 for문으로 key 값 부여

반응형

썸네일

 

 

 

목표

GA 데이터의 user_id, page_location별 key 값 부여

 

 

 

구현 코드

unique_user_ud <- unique(data$user_id)

idx <- 1

for(i in unique_user_id){
  n <- 1
  rnk <- data %>% filter(user_id == i) %>% select(user_id, event_rnk)
    
    for(j in 1:nrow(rnk)){
      print(idx)
      
      if(!is.na(data$prev_location[idx]) & data$page_location[idx] != data$prev_location[idx]){
        n <- n+1
      }
      data$total_rnk[idx] <- n
      idx <- idx + 1
    }
}

 

 

 

구현 과정

1) i (unique_user_id 활용) : user_id 별로 1부터 시작해야 하기 때문에 for문 i 추가

2) j (rnk)의 row 수 활용) : user_id 별로 갖고 있는 event 수가 다르기 대문에 event 숫자인 row 수 활용

3) idx : 현재 row 번호(i+j). 지금 page_location과 이전 page_location이 다르면, 지금 total_rnk에 n+1 부여해서 이전과 다른 total_rnk를 갖게된다.

  - 값이 들어가는 자리를 특정 key에 따른 위치가 아닌 물리적 위치로 결정.

  - 이를 위해 unique_user_id를 미리 asc 정렬.

  + 이전에 [idx]에 [j]를 넣으면서 계속 위의 row만 total_rnk 값이 변해서 문제였다.

 

 

 

 

 

반응형