【R】dplyr mutate 중에서 복수열명을 선택해 합한다

6156 단어 dplyrRRStudio

선택한 열의 행만 추가하고 싶습니다.



많은 열이 있고 흩어져있는 변수들의 값을 합산하고 싶을 때

예를 들어 ↓ 표 중 aa, vv, ew, ss, 열만 합한 변수를 만들고 싶습니다.



해결책



sample.R


library(dplyr)

df <-  data.frame(ID = c("AA","BB","CC"),
                  a1 = c(NA,2,3),
                  aa = c(1,NA,6),
                  cc = c(NA,2,2),
                  d4 = c(NA,6,NA),
                  vv = c(NA,2,9),
                  dd = c(NA,2,2),
                  ew = c(3,2,NA),
                  ss = c(NA,5,3),
                  kk = c(6,NA,NA)
                  )

  # 合計したい変数名をベクトルで用意する
namelist <- c("aa","vv","ew","ss")

  # one_ofで選択して行を足す
df_added <- df %>% 
  mutate(sum_row = select(., one_of(namelist)) %>% 
                   rowSums(na.rm = T))

# > df_added
# ID a1 aa cc d4 vv dd ew ss kk sum_row
# 1 AA NA  1 NA NA NA NA  3 NA  6       4
# 2 BB  2 NA  2  6  2  2  2  5 NA       9
# 3 CC  3  6  2 NA  9  2 NA  3 NA      18


이 정도의 열수라면 그다지 힘들지는 않지만,
합계하고 싶은 열수가 많을 때는 ,.

막혔을 때 도움이되면 다행입니다.
더 좋은 방법이 있으면 꼭 가르쳐주세요!

참고

좋은 웹페이지 즐겨찾기