반응형

dplyr 4

3개 이상의 데이터프레임을 한 번에 합치기 (join 함수)

앞서 dplyr library에서 join 함수에 대해서 배웠는데, A라는 데이터프레임과 B라는 데이터프레임을 name이라는 공통된 칼럼으로 합친다고 하면 (inner_join을 써보겠습니다 여기선), inner_join(A, B, by="name") 뭐 이런 식으로 하면 되는데요. 만약 A, B, C, D, and, E라는 데이터프레임을 합친다고 하면 어떻게 한 줄로 만들 수 없을까요. list에 데이터프레임 이름을 넣어서 하는 방식도 있을 수 있겠지만, 여기서는 dplyr %>% 기능을 쓰면 편합니다. %>%라는 dplyr에서 자주 이용하는 기능인데요 쉽게 얘기해서 파이프 (pipe)같은 기능이라고 보시면 됩니다. 왼쪽 있는 걸 수행한 다음에 오른쪽 걸 수행해라 뭐 이런 식입니다. 이걸 결합하면 다음..

R/R basic 2021.04.26

각 칼럼안에 있는 고유한 이름(혹은 값)은 몇 개나 있나 (n_distinct)

R로 작업을 하다보면, 각 칼럼에 고유한 값이 몇 번 나오는지 궁금할 때가 있습니다. 예를 들어 제가 들고 있는 데이터프레임 이름이 value인데, 그 데이터의 구조는 다음과 같은데요. GeoName이라는 칼럼에는 미국의 주 이름이, Description에는 각 산업 이름이 들어가 있습니다. 연도별 데이터를 모으다보니 주 이름이나 산업 이름이 겹쳐서 여러 번 나오게 됩니다. 그럼 여기서 (반복되는 이름 빼고 고유한 이름의) 미국 주는 몇 개나 포함된 걸까? 만약 미국 모든 주가 포함된 거라면 51개의 주가 다 포함된 걸까? (역시 반복되는 이름 빼고) 산업은 몇 개나 있는 걸까? 등이 궁금할 겁니다. 이 때는 쓰는 명령어가 dplyr library에 있는 summarize() 함수에 있는 n_distin..

R/R basic 2021.04.14

열 (column) 이름 바꾸기: colnames or rename

R에서 열 (column) 이름을 바꾸는 방법은 크게 두가지가 있습니다. 우선 별 다른 library 없이 데이터프레임 안에서 바꿀 경우는 colnames()를 쓰면 됩니다. colnames(df)[1]%라는 연산자를 이용해서 하는 게 좀 편합니다. %>%는 앞의 명령어를 한 다음에 그 다음 것을 해라는 연산자 정도로 생각해주시면 됩니다. df %>% rename(b1=a1, b2=a2, ...., b10=a10) 아예 벡터를 만들어서 rename 한 칼에 해주는 것도 나쁘지 않은 것 같습니다. oldnames=c('a1', 'a2' ... ,'a10') newnames=c('b1', 'b2', ... ,'b10') df %>%remane_at(vars(oldnames), ~newnames) 검색을 해보..

R/R basic 2020.05.03
반응형