Base/R

[R] 예제를 통한 데이터 전처리 작업

반응형

 

예제를 통한 데이터 전처리

 

처음에 str로 데이터 구조 , 변수 개수, 변수 명, 관찰지 개수 , 관찰치 보기 

 

그다음 요구조건에 맞춰서 필요한 데이터만 추출한다. select으로 원하는 데이터를 가져온 뒤에 filter로 조건에 맞는 데이터를 추출해 seoul_coffee_select에 넣어준다.

 

업태구분명 중에 커피숍인 데이터만 넣기 위해 filter를 넣었다.

 

그다음 데이터를 head를 통해 확인했다. head는 앞에 6개의 데이터를 보여준다.

 

View는 R에서 View 형태로 데이터를 볼 수 있게끔한다.

 

 

 

조건에서 폐업하지 않고 현재 영업 중인 카페였다. 그래서 기존의 데이터에서 filter를 걸어서 해당 조건에 맞는 영업이라고 적혀있는 데이터만 추출해 왔다.

 

 

 

문제에서 원하는 것이 지역구별로 데이터를 나누는 것이었다. 서대문, 영등포 , 동대문 이 3개를 찾기 위해 처음에 주소가 어떻게 나와있는지 확인했다.

데이터가 위에 처럼 나와있었고 내가 필요한 건 구 였다. 그래서 

 

substr를 통해서 소재지 전체 주소를 잘랐다. "서울특별시 "까지 6글자이다. 이 여섯 번째부터 10번째 글자까지 자르고 

str_extract(매칭 문자열 추출)을 통해서 한글인 2-3글자에 구에 매칭 되는 데이터를 가져온다. 

그다음 nrow(행의 개수)를 통해 몇 개인지 확인한다.

 

 

이다음에는 ymd함수를 통해 char데이터를 dated의 데이터 형식으로 바꿔준다.

 

 

 

 

date 형식의 데이터를 yeaar / month / day를 추출해낸다.

 

 

여기서 시설 총규모 타입을 as.numeric를 통해 수치형으로 바꿔준다.

 

 

 

 

해당 조건에 맞춰서 mutate를 사용해서 열을 추가한다. 규모라는 열을 추가하는데 시설 총규모에 따라 값을 넣어준다. ifelse를 통해 if 조건일 때 값을 넣고 아니면 

else로 넘어가는데 이 부분에 ifelse를 넣어줘서 해당 조건이 아니면 넘어가게끔 만든다. 

 

 

만든 데이터를 통해 규모별 커피숍 수를 확인하기 위해 group_by를 통해 규모를 묶고 이 총개수를 summrise(n=n())을 통해 센다 

 

 

문제의 조건을 맞추기 위해 영업 중 이면서 인허가 일자가 2000-01-01 인 조건을 filter를 통해 걸고 

그다음에 규모별로 확인하기 위해 group_by를 통해 규모를 묶고 그 개수를 셌다. 

 

 

가장 큰 규모의 카페를 찾기 위해서 which 함수를 사용했다. which를 통해 max나 min 을통해 제일 크거나 작은 값을 찾을 수 있다. 

그렇게 값이면 해당 행을 반환하는데 그 행의 값을 cafe2000 [ ]에 넣어줌으로써 해당 행의 모든 값을 볼 수 있게 한다.

 

 

 

 

시설 총규모를 히스토그램으로 시각화하기 위해 ggplot을 사용했다. 시설 총규모를 히스토그램으로 나타내기 위해 x 축으로 넣고 desinty를 통해 밀도를 나타낸다.

히스토그램을 나타내는 명령어는 geom_histogram이다.

 

 

현재 영업 중인 카페의 인허가 연도를 히스토그램으로 

 

 

 

 

 

 

 

영업과 폐업한 카페의 언허가 연도를 보기 위해 x축에 연도를 fill로 통해 해당 값에서 영업과 폐업을 나타낸다.

 

 

 

데이터 프레임으로 만들기 위해 as.data.frame을 사용하였다. 그리고 연도별 숫자를 확인하기 위해 group_by를 걸어줬다.

 

 

 

 

 

생존율을 시각화하기 위해서는 인허가 정보를 받은 커피숍 대비 현재도 영업 중인 커피숍이 필요합니다.

 

그래서  d2와 d1을 merge를 통해 하나의 데이터로 묶어줍니다.

 

이 두 값을 연도로 묶어준다, (원래는 df1, df2입니다.)

 

여기서 나온 n.x값과 n.y값을 나눠서 인허가 일자를 받은 수에서 영업 중인 가게를 구한다.

 

 

이 퍼센트를 그래프로 그린다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형