[R] 데이터 가져오기

2022. 10. 9. 12:49Dev.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