R 기본 2: 외부 데이터 불러오기

데이타를 일일히 수동 입력하는 일은 지루하고 고단한 일.

데이타를 예를 들어 MS excel 로 입력하면 그것을 열어볼 때도 excel이 필요합니다.

CSV 파일 읽기

Comma-Separated Value 파일은 데이타를 콤마 , 로 구분하는 형식입니다.

서울시 공공데이터 읽기

서울시 코로나19 확진자 현황페이지에서 [내려받기(CSV)]를 클릭하여 자료를 CSV 파일 형식으로 내려받고 다음을 실행합니다.

   1 fileName = file.choose() # 마우스로 방금 다운로드 받은 파일 위치를 지정해주세요.
   2 df <- read.csv(fileName)
   3 # df <- read.csv(file.choose()) 이렇게 해도 같은 의미
   4 head(df)
   5 str(df)
  1. file.choose() 함수는 사용자에게 파일 위치를 물어보는 함수입니다.
  2. 사용자의 선택을 fileName 이라는 변수에 저장합니다. fileName 대신 다른 아무 이름이나 써도 무방합니다. 대소문자 구분한다는 것만 기억하세요.
  3. read.csv() 함수는 지정한 파일을 CSV 형식으로 간주하고 읽어서 data.frame 형식으로 출력합니다.
  4. 그리고 read.csv() 함수의 출력값을 df 라는 변수에 저장합니다.

file.choose() 함수를 쓰지 않고 이렇게 직접 파일을 지정해 줄 수도 있습니다.

   1 df <- read.csv('C:/Users/계정이름/Downloads/서울시 코로나19 확진자 현황.csv')
   2 # () 안 내용은 방금 다운로드 받은 파일 위치에 맞게 수정하세요.

macOS 사용시 추가로 고려해야 할 사항

macOS나 RStudio.cloud 에서 '서울시 코로나19 확진자 현황.csv' 파일을 read.csv() 하면 에러가 생깁니다.

   1 df <- read.csv('~/Downloads/서울시 코로나19 확진자 현황.csv', fileEncoding = 'euc-kr')

구별 환자 수 plot() 하기

df data.frame에서 보면 df$지역에 각 환자의 주소지(자치구)가 저장되어 있습니다.

   1 df <- read.csv('~/Downloads/서울시 코로나19 확진자 현황.csv', fileEncoding = 'euc-kr')
   2 pts <- table(df$지역)
   3 head(pts)
   4 # macOS라면 다음을 실행 (한글 출력시 사용할 폰트를 지정)
   5 # par(family = "AppleGothic")
   6 plot(pts)

pts.png

오름차순 (혹은 내림차순)으로 정리하면 plot이 더 보기 좋습니다.

   1 pts <- sort(pts)
   2 plot(pts)
   3 # 혹은
   4 pts <- sort(pts, decreasing = TRUE)
   5 plot(pts)

pts_sorted.png

환자수가 50명 미만인 구는 제외 해 볼까요?

다음은 pts 벡터를, 값이 49를 초과하면 TRUE, 아니면 FALSE로 표시되는 T/F vector로 변환합니다.

   1 pts > 49

이렇게 하면 pts 벡터에서 pts > 49TRUE인 data point만 선택해서 출력합니다.

   1 pts[ pts>49 ]

row_selection.png

위 식을 plot()에 feeding 합니다.

   1 plot( pts[ pts>49 ] )

plot_selectedRow.png


과제: '서울시 코로나19 확진자 현황.csv'에서 확진일별 환자수를 plot으로 그리세요.


Class/Statistics/RBasic2 (2020-09-12 17:52:24에 gehoon가(이) 마지막으로 수정)