R 기본 2: 외부 데이터 불러오기
데이타를 일일히 수동 입력하는 일은 지루하고 고단한 일.
- 누군가 입력 해 놓으면 그것을 공유해서 쓴다거나,
- 입력도 여럿이 나눠서 같이 하는 것이 좋습니다.
데이타를 예를 들어 MS excel 로 입력하면 그것을 열어볼 때도 excel이 필요합니다.
- 데이타 열람에 특별한 유료 소프트웨어(예: MS excel, MS word, HWP, Adobe 등)가 필요하다면 '데이타 공유' 측면에서는 바람직하지 않습니다.
- plain text file 파일로 저장하면 특정 소프트웨어에 종속되지 않고 열 수 있습니다.
- plain text file은 파일 이름이 .txt이나 .csv로 끝나며 메모장 등 기본 프로그램으로도 열 수 있습니다. 당연히 MS-word나 excel로도 열 수 있습니다.
CSV 파일 읽기
Comma-Separated Value 파일은 데이타를 콤마 , 로 구분하는 형식입니다.
예를 들어 서울시 자치구별 의료인 숫자를 CSV 형식으로 보면 이렇게 보입니다.
- 특정 소프트웨어에 종속되지 않기 위하여, 공개 데이터는 CSV 파일 형식으로 제공되는 경우가 많습니다.
참고: 공공데이터포털 https://www.data.go.kr
서울시 공공데이터 읽기
서울시 코로나19 확진자 현황페이지에서 [내려받기(CSV)]를 클릭하여 자료를 CSV 파일 형식으로 내려받고 다음을 실행합니다.
- RStudio.cloud를 사용중이면 다운로드 받은 파일을 cloud 서버에 복사해야 합니다.
- RStudio.cloud 화면 우측 아래 Files 창에서 [Upload]를 클릭하여 서버에 복사할 수 있습니다.
- file.choose() 함수는 사용자에게 파일 위치를 물어보는 함수입니다.
- 사용자의 선택을 fileName 이라는 변수에 저장합니다. fileName 대신 다른 아무 이름이나 써도 무방합니다. 대소문자 구분한다는 것만 기억하세요.
- read.csv() 함수는 지정한 파일을 CSV 형식으로 간주하고 읽어서 data.frame 형식으로 출력합니다.
- 그리고 read.csv() 함수의 출력값을 df 라는 변수에 저장합니다.
file.choose() 함수를 쓰지 않고 이렇게 직접 파일을 지정해 줄 수도 있습니다.
macOS 사용시 추가로 고려해야 할 사항
macOS나 RStudio.cloud 에서 '서울시 코로나19 확진자 현황.csv' 파일을 read.csv() 하면 에러가 생깁니다.
- 저 파일을 작성한 사람이 아마 Windows system을 사용했을 겁니다. Windows와 macOS는 한글 처리 방법이 다릅니다. ([[/RKorean|참고자료)
해결방법: read.csv() 함수를 사용할 때 fileEncoding = 'euc-kr' 옵션을 추가합니다.
1 df <- read.csv('~/Downloads/서울시 코로나19 확진자 현황.csv', fileEncoding = 'euc-kr')
구별 환자 수 plot() 하기
df data.frame에서 보면 df$지역에 각 환자의 주소지(자치구)가 저장되어 있습니다.
- 자치구별 환자수를 헤아리려면 각 자치구가 몇번 등장하는지 세어야 합니다.
table() 함수가 그 역할을 합니다.
오름차순 (혹은 내림차순)으로 정리하면 plot이 더 보기 좋습니다.
sort() 함수를 써서 정렬합니다.
decreasing = TRUE (혹은 decreasing = FALSE) 옵션으로 정렬 방향 설정. 언급없으면 FALSE로 간주
환자수가 50명 미만인 구는 제외 해 볼까요?
다음은 pts 벡터를, 값이 49를 초과하면 TRUE, 아니면 FALSE로 표시되는 T/F vector로 변환합니다.
1 pts > 49
이렇게 하면 pts 벡터에서 pts > 49가 TRUE인 data point만 선택해서 출력합니다.
1 pts[ pts>49 ]
위 식을 plot()에 feeding 합니다.
1 plot( pts[ pts>49 ] )
과제: '서울시 코로나19 확진자 현황.csv'에서 확진일별 환자수를 plot으로 그리세요.
| /CentralLimitTheorem /ChiSquared /Clustering /InstallR /InstallRStudio /Lies /NormalDistribution /RBasic /RBasic1 /RBasic2 /RBasic3 /RCloud /RIntro /RKorean /T-Test |
