-
[R]_28일차_06.01프로그래밍/R 2021. 6. 2. 08:38
본 내용은 '2021년 혁신성장 청년인재 집중양성 사업'의 ‘인공지능 개발자 양성 과정’ 강좌를 수강하면서 강의 및 강의노트를 참고하여 작성한 내용입니다.
Kaggle: Your Machine Learning and Data Science Community
R이란?
- 데이터를 분석하는 데 사용되는 소프트웨어 (범용 분석 툴)
- R의 데이터 타입 : 벡터(변수)
R의 약점
- 파이썬을 점점 더 많이 사용하고 있는 상황
- 웹 프로그래밍이 불가능 ↔ 파이썬 (Flask, Django)
- 딥러닝 (파이썬과 비교되는 상황)
- 발전속도가 정체되고 있는 상황
- 컴파일 과정이 없다 (장점이자 단점)
- 버전의 영향을 많이 받는다 (버전에 따라 프로그램이 동작이 안될 수 있다)
- 패키지의 의존성 때문에 문제가 발생할 수 있기 때문(ex. 패키지 실행 불가능)
R의 장점
- 무료 (오픈소스)
- 여러 회사에서 사용
- 하둡 안에 R이 내장되어 있다
- 강력한 시각화 기능
- 정말 많은 패키지
R의 활용
- 통계 분석
- 머신러닝 모델링
- 되긴 되지만 사용하지 않는다 (더 좋은게 있기 때문 ex) 파이썬의 Tensorflow 등등)
- 텍스트 마이닝
- 소셜 네트워크 분석
- 지도 시각화
- 주식 분석
- 이미지 분석
- 사운드 분석
- 웹 애플리케이션 개발
- 거의 사용하지 않는다 (파이썬의 Flask, Django가 있기 때문)
- Flask, Django에서는 MVC 패턴 구현 가능
파이썬 - R
- 파이썬 : 인터프리터 언어
- R : 인터프리터 언어
인터프리터 방식 vs 컴파일러 방식 비교
02-1 R과 R 스튜디오 설치하기
※ 설치 순서
- R GUI를 먼저 깔고 → R Studio를 설치해야 한다
R설치 방법
- R 3.6.2 버전 설치 (mybox-실습SW)
- R Studio에서 소스가 실행되지 않을 때 사용
R Stduio 설치
- (mybox-실습SW)
R Stduio Cloud 연동 (본인은 구글 계정으로 연동)
- 업로드 속도가 느리다
- 지원 메모리 용량 : 1GB
CH02_R 데이터 분석 환경 만들기
4개의 화면
- 콘솔 창 : 명령어 실행
- 소스 창 : 명령어 기록
- 환경 창 : 생성한 데이터를 보여준다
- 파일 창 : 폴더에 있는 파일을 보여준다
R Stduio 주요 단축키
Soft-wrap 자동 줄바꿈 옵션 설정하기
- Tools → Global Options → Soft-wrap R source files 항목 체크
c()
함수 : 변수에 여러 개의 값을 넣는 기능seq()
함수 : 변수에 여러 개의 값을 넣는 기능 (괄호 안에 시작 숫자와 마지막 숫자를 쉼표로 구분)by
파라미터 : 일정한 간격을 두고 연속된 숫자로 된 변수 생성 가능숫자를 다루는 함수
mean()
max()
min()
문자를 다루는 함수
paste()
: 여러 문자를 합쳐 하나로 만드는 함수- collapse(옵션) = "," : 문자들을 쉼표로 구분
함수란? : 특정한 기능을 가지고 있는 상자
패키지란 ? : 함수 꾸러미
패키지 설치하기 (ggplot2)
install.packages()
(패키지 이름의 앞뒤에 반드시 따옴표 입력!)
Help 함수
?함수명
: 함수의 메뉴얼이 나타난다
class() 함수
typeof() 함수
- 식별자의 자료형을 알려준다
ls() 함수
- 현재 지정된 변수 목록 반환
mode, class, typeof 함수의 차이
실습 예제
# ggplot2 install.packages("ggplot2") # ggplot2 패키지 로드 library(ggplot2) x <- c("a", "a", "b", "c") x # 빈도 막대 그래프 출력 qplot(x) test <- c(80, 60, 70, 50, 90) test mean(test) test2 <- mean(test) test2
CH04_데이터 프레임의 세계로!
데이터 프레임이란?
- 행과 열로 구성된 사각형 모양의 표 형태
열 == 속성, 컬럼, 변수(벡터)!
행 == 정보, Case !!
한 명에 대한 데이터는 가로 한 줄에 나열된다
데이터가 크다 = 행이 많다 or 열이 많다
데이터가 크다
- 행이 많다 → 컴퓨터가 느려진다 → 고사양 장비의 구축 필요 (데이터의 양)
- 열이 많다 → 분석 방법의 한계 → 고급 분석 방법이 필요 (데이터의 다양성)
빅데이터는 중요한가?
- 데이터가 아무리 많더라도 다양한 변수를 담고 있지 않으면 변수들 간의 관련성을 분석할 수 없기 때문에 의미 있는 정보를 찾아낼 수 없다
- → '빅' 데이터가 아니라 '다양한; 데이터가 중요
- → 즉, 행 보다는 열이 중요!
데이터 프레임 만들기
엑셀 파일 불러오기
readxl
패키지 설치하기read_excel("aaa.xlsx")
함수 사용
install.package("readxl") library(readxl) # 현재 폴더에 있는 엑셀 파일 x <- read_excel("aaa.xlsx") # 다른 폴더에 있는 엑셀 파일 x <- read_excel("d:/aa/bb/cc.xlsx") mean(x$english)
엑셀 파일 첫 번째 행이 변수명이 아니라면?
col_names = F
옵션 사용! (열 이름을 가져올 것인가? → False)- → 첫 번째 행을 변수명이 아닌 데이터로 인식해 불러오고, 변수명은 '...숫자'로 자동 지정된다
엑셀 파일에 시트가 여러 개 있다면?
sheet = xx
옵션 사용!
CSV 파일 불러오기
- CSV 파일이란?
- Comma-Seperated Values : 쉼표로 구분되어 있는 형태
read.csv()
내장 함수 사용
CSV 파일 첫 번째 행이 변수명이 아니라면?
header = F
옵션 사용!- → 첫 번째 행을 변수명이 아닌 데이터로 인식해 불러오고, 변수명은 '...숫자'로 자동 지정된다
문자가 들어 있는 파일을 불러올 때
stringAsFactors = F
옵션 사용!
데이터 프레임을 CSV 파일로 저장하기
데이터 프레임 만들기
CSV 파일로 저장하기
RDS 파일 활용하기
- RDS 파일이란?
- R 전용 데이터 파일
- 다른 파일들에 비해 R에서 읽고 쓰는 속도가 빠르고 용량이 작다는 장점
정리
var1 <- c(1, 2, 3, 4, 5) var2 <- c(3, 4, 5, 6, 7) print(var1 + var2) # 4, 6, 8, 10, 12 # 변수 만들기, 데이터 프레임 만들기 english <- c(90, 80, 60, 70) # 영어 점수 변수 생성 math <- c(50, 60, 100, 20) # 수학 점수 변수 생성 data.frame(english, math) # 데이터 프레임 생성 # 외부 데이터 이용하기 # 엑셀 파일 library(readxl) # 패키지 로드 df_exam <- read_excel("excel_exam.xlsx") # 파일 불러오기 # CSV 파일 df_csv_exam <- read.csv("csv_exam.csv") # 파일 불러오기 write.csv(df_midterm, file="df_midtern.csv") # 파일 저장하기 # RDA 파일 load("df_midterm.rda") # 파일 불러오기 save(df_midterm, file="df_midterm.rda") # 파일 저장하기
CH05_데이터 분석 기초! (데이터 파악, 다루기 쉽게 수정)
데이터를 파악할 때 사용하는 함수
head()
tail()
View()
: 뷰어 창에서 데이터 확인 (첫 글자가 대문자)dim()
: 데이터 차원 출력- 데이터가 몇 행, 몇 열로 구성되어 있는지 확인
str()
: 데이터 속성 출력summary()
: 요약 통계량 출력
변수명 바꾸기
- dplyr 패키지 : 데이터를 원하는 형태로 가공할 때 사용하는 패키지
rename()
함수
파생변수 만들기
- 파생 변수란?
- 기존의 변수를 변형해 만든 변수
변수 조합해 파생변수 만들기
mpg 통합 연비 변수 만들기
조건문을 활용해 파생변수 만들기
중첩 조건문 활용하기
정리
# 데이터 준비, 패키지 준비 mpg <- as.data.frame(ggplot2::mpg) # 데이터 불러오기 library(dplyr) # dplyr 패키지 로드 library(ggplot2) # ggplot2 패키지 로드 # 데이터 파악 head(mpg) tail(mpg) View(mpg) # Raw 데이터 뷰어 창에서 확인 dim(mpg) # 차원 str(mpg) # 속성 summary(mpg) # 요약 통계량 # 변수명 수정 mpg <- rename(mpg, company=manufacturer) # 파생변수 생성 mpg$total <- (mpg$cty + mpg$hwy) / 2 # 변수 조합 mpg$test <- ifelse(mpg$total >= 20, "pass", "fail") # 조건문 활용 # 빈도 확인 table(mpg$test) # 빈도표 출력 qplot(mpg$test) # 막대 그래프 생성
CH06_자유자재로 데이터 가공하기
- 데이터 전처리 - 원하는 형태로 데이터 가공하기
- 조건에 맞는 데이터만 추출하기
- 필요한 변수만 추출하기
- 순서대로 정렬하기
- 파생변수 추가하기
- 집단별로 요약하기
- 데이터 합치기
06-2_조건에 맞는 데이터만 추출하기
%>% 기호
- 연결하는 기호
# exam을 출력하되 exam %>% filter(class = 2) # 2반인 경우만 추출 exam %>% select(math) # math 추출 exam %>% filter(class == 1) %>% select(english) # class가 1인 행만 추출한 다음 english 추출
조건에 맞는 데이터만 추출하기
초과, 미만, 이상, 이하 조건 걸기
여러 조건을 충족하는 행 추출하기
여러 조건 중 하나 이상 충족하는 행 추출하기
목록에 해당하는 행 추출하기
연산자 종류
06-3_필요한 변수만 추출하기
- 변수 추출하기
- dplyr 함수 조합하기
06-4_순서대로 정렬하기
- 오름차순으로 정렬하기
arrange()
- 내림차순으로 정렬하기
arrange(desc(xxxx))
06-5_파생변수 추가하기
- 파생변수 추가하기
- mutate()
etc
코딩테스트 준비 (강의 교안-이것이 취업을 위한 코딩 테스트다 with 파이썬 강의교안 참고)
"돈에 물드는 순간 순수성은 사라진다" (ex. 마크 주커버그)
설치 후 사용하는 시대가 점점 저물고 있다 (점점 클라우드 형태로 사용하는 형태)
Reference
'프로그래밍 > R' 카테고리의 다른 글
[R] wordcloud2 패키지 실습 (0) 2021.06.07 [RStudio, 스크랩] Error-.onLoad가 loadNamespace()에서 'rJava'때문에 실패했습니다 (0) 2021.06.06 [R]_31일차_06.04 (0) 2021.06.06 [오류] 함수 "%>%"를 찾을 수 없습니다 (0) 2021.06.03 [R]_30일차_06.03 (0) 2021.06.03