[R] 데이터 가져오기
2022. 10. 9. 12:49ㆍDev.Program/Python & R
728x90
< JSON 데이터 가져오기 >
# JSON :[{}] 텍스트 데이터 형식
# https://api.github.com/repositories
- 제이슨 형태의 데이터
# json 데이터 가져오기 url = "https://api.github.com/repositories" savename2 = "repo.json" # repo.json 형태로 파일을 저장하겠다 if not os.path.exists(savename2): req.urlretrieve(url, savename2) |
- 파일 생성됨
import json items = json.load(open(savename2, "r", encoding="utf-8")) print(items) |
- 리스트 안에 딕셔너리 형태로 읽어짐
- 딕셔너리 안에 있는 딕셔너리를 가져오고 싶을 때
for item in items: print(item['name']+"-"+item['owner']['login']) |
- 이런식으로 가져올 수 있다!
< 웹 API 데이터 가져오기 >
# 웹 API 데이터 가져오기 # 옥션, 지마켓, 아마존, ... 크롤링 => 웹 API(인증을 거쳐야 사용 가능) 서버 부하 감소 사용 # 날씨 정보, 상품데이터, 주가, 환율, ... => 웹 API 제공 # 웹 API : 사이트가 가지고 있는 정보를 외부에서도 쉽게 사용할 수 있게끔 공개 # 어떤 사이트에 웹 API 요청 => xml, json 형태로 제공 # OpenWeatherMap 전셰계 날씨정보제공 # https://openweathermap.org # 회원가입 시 API keys 줌 |
- 전세계 날씨정보를 제공, API 제공
# API 키 apikey="474d59dd890c4108f62f192e0c6fce01" # 날짜 확인 도시(리스트) 지정 cities=["Seoul,KR","Tokyo,JP","New York,US"] #데이터 가져오는 주소 api="http://api.openweathermap.org/data/2.5/weather?q={city}&APPID={key}" |
for cityname in cities: url = api.format(city=cityname, key=apikey) r = requests.get(url) data = json.loads(r.text) print(data) |
- 서울, 도쿄, 뉴욕 순으로 나옴
print(data['name']) print(data['weather']) print(data['weather'][0]['description']) |
< R >
- 데이터 분석하기에 탁월함!
https://cran.r-project.org/mirrors.html
- 바탕화면에 설치! 64bit 짜리 실행
- 실행창
https://rstudio.com/products/rstudio/download/
- 바탕화면에 설치하기!
- ======== D 드라이브에 workspace_r 폴더 새로 만들기
- Create project
- test1 로 저장하면 이렇게 파일 생성됨!
- 프로젝트옵션(Project Options...) / 전체옵션(Global Options…)
54p
> Global Options…
- 폰트 설정
- 줄이 꽉 차면 자동으로 다음줄로 넘어가게(자동줄바꿈)
> Project Options...
- encoding 설정은 그냥 UTF-8 기본으로 두면 됨!
- 위에서 적고 Ctrl + Enter 치면 밑에 콘솔창에 뜸!
- 한번에 실행하고 싶으면 블럭지정 후 Ctrl + Enter
- 변수 설정
59p
# 변수에 여러 개 값 넣기 var1<-c(1, 2, 3, 7, 8) var1 var2<-c(1:5) var2 var3<-seq(1,5) var3 var4<-seq(1,10,by=2) var4 |
str1<-"a" str1 str2<-"Hello" str2 str3<-c("a","b","c") str3 # 문자열 + 숫자 => 에러 str1 + 2 |
67p
< 함수 >
# 함수 x<-c(1, 2, 3) x mean(x) max(x) min(x) |
- 평균 / 최댓값 / 최솟값
< 문자열 합치기 >
str5<-c("Hello!", "world", "is", "good!") str5 # 문자열 합치기 paste(str5, collapse = ",") paste(str5, collapse = ";") paste(str5, collapse = " ") |
< 패키지 >
- 함수 모음
- 패키지 설치(한 번만 설치하면 됨!) → 패키지 로드(Import 개념 : 파일이 만들어질 때마다 해야함) → 함수사용
# 그래프 패키지 설치 install.packages("ggplot2") |
- 그래프 패키지 이름 : ggplot2
- 실행시키면 자동으로 설치해줌
library(ggplot2) x<-c("a","a","b","c") x # 빈도 막대 그래프 qplot(x) |
- library(ggplot2) 꼭 실행시켜준 뒤 qplot() 사용!
- library 는 Import 개념!
# Help 함수 ? ?qplot |
- 설명에 대해 나옴!
======== test2.R 만들기
85p
< 데이터 프레임 >
# 데이터 프레임 english<-c(90,80,60,70) english math<-c(50,60,100,20) math class<-c(1,1,2,2) class df_midterm<-data.frame(english, math) df_midterm |
mean(df_midterm$english) mean(df_midterm$math) |
- 달러($) 적으면 자동으로 완성됨!
df_midterm2<-data.frame(english=c(90,80,60,70), math=c(50,60,100,20), class=c(1,1,2,2)) df_midterm2 |
- 데이터 한 번에 넣기도 가능(이 때는 <- 대신 = 을 쓴다)
- 같은 폴더 내에 파일 넣기
# 파일 불러오기 # 엑셀 파일 불러오기 # readxl 패키지 설치 install.packages("readxl") # readxl 패키지 설치 library(readxl) # readxl 패키지 로드 df_exam=read_excel("excel_exam.xlsx") df_exam mean(df_exam$english) # 열이름 없는 데이터 # df_exam=read_excel("excel_exam.xlsx", col_names=F) # 엑셀 파일 sheet 선택 # df_exam=read_excel("excel_exam.xlsx", sheet=3) |
# csv 파일 불러오기 df_csv_exam <- read.csv("csv_exam.csv") df_csv_exam # 문자가 있는 파일 불러올 때 # df_csv_exam<-read.csv("csv_exam.csv", stringsAsFactors=F) |
# dataFrame -> csv 파일 저장 df_midterm2 write.csv(df_midterm2, file="df_midterm.csv") |
- 파일 생성됨~!
# dataFrame -> rData 파일 저장(r전용파일) save(df_midterm2, file="df_midterm.rda") |
load("df_midterm.rda") |
# 데이터 파악 head(df_csv_exam) head(df_csv_exam, 3) tail(df_csv_exam) tail(df_csv_exam, 3) |
View(df_csv_exam) |
- 엑셀 모양으로 보여줌(대문자 View())
# 차원 행 열 dim(df_csv_exam) # 데이터 속성(형) 확인 str(df_csv_exam) |
# 요약 summary(df_csv_exam) |
# 열이름 바꾸기
# 열추가
# 행, 열 조회
# 추출
# 정렬
# 그룹
# 열 합치기, 행 합치기(병합)
# 데이터 정제 - 빠진 데이터, 이상한 데이터 제거
# 그래프 그리기
# 통계 데이터 ⇒ 이상한 데이터 처리 ⇒ 그룹 ⇒ 그래프
-------- 매주 월요일
728x90
'Dev.Program > Python & R' 카테고리의 다른 글
[R] 산점도 및 여러가지 그래프 (0) | 2022.10.09 |
---|---|
[R] if문 / 이상치데이터 (0) | 2022.10.09 |
기상청 데이터 (0) | 2022.10.09 |
여러가지 그래프 (0) | 2022.10.09 |
여러가지 메서드 (0) | 2022.10.09 |