반응형

R기본 8

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

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

R/R basic 2021.04.14

R에 지금 열려 있는 데이터 지우기

R로 작업을 하다보면 필요없이 많은 데이터 (그게 데이터프레임 형태든 list이든)가 있는 경우가 있습니다. R 환경 창을 보면 필요없는 데이터들이 우르르 떠 있는 경우가 있죠. 메모리 용량 너무 차지 하니까 필요없는 데이터 하나 R에서 없애자 (당연히 영구적으로 없애는 건 아닙니다) 하면 그냥 rm() 명령어를 쓰면 됩니다. 예를 들어, 지금 창에 데이터프레임이 여러개 우후죽순으로 있는데 그 중에서 comp라는 데이터프레임은 없애자 하면 그냥 rm(comp) 하면 됩니다. 없어진 거 보이죠? 만약에 싹 다 working space에서 데이터를 없애고 싶다고 하면 rm(list=ls()) 이 명령어를 쓰면 창이 싹 깨끗해집니다. 만약에 두 개의 데이터프레임 (예를 들어 데이터프레임 이름이 korea, j..

R/R basic 2021.04.07

이름이 비슷한 csv 파일을 불러서 통합해서 하나의 데이터프레임을 만들 경우

일을 하다보면 파일 안에 있는 변수는 같은데 파일 이름은 다르지만, 이를 하나로 통합하고 싶은 경우가 있을 겁니다. 예를 들어 파일 이름이 data2000, data2001,... data2020 이렇게 있는데 이를 다 합쳐서 하나로 만들 경우가 있을 수 있죠. 이를 한 번에 불러서 하나의 정돈된 데이터프레임으로 바꿀 수 없을까요? 우선 일단 특정 폴더를 만들어서 관련 csv 파일을 다 몰아 넣는 것이 첫번째 스텝입니다. 이후에 워킹 폴더를 그 폴더로 지정해주시구요 (setwd()). 아래가 가장 흔하게 쓰는 방법입니다. setwd("/Users/abc/Downloads") #이것은 한 예입니다. 폴더에 맞춰 변경해주시면 됩니다. files = list.files(pattern="*.csv") #csv파..

R/R basic 2020.05.08

열 (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
반응형