컴퓨터/R 공부

[혼공 학습단 10기] 혼자 공부하는 R 데이터분석 Chapter 03

방구석의 개굴이 2023. 7. 11. 15:56

 

Chapter 03 R 프로그래밍 익히기

03-1 변수와 함수

 

  • 변수와 함수
변수 함수
데이터를 구성하는 원소 값 데이터를 조작할 수 있는 프로그래밍 구문
변수명 <- 함수명(인자)
x, y, ex_am.ple print(“Hello world!”)

 

  • 함수의 종류
내장함수 print(), sum(), Sus.Date(), min(), max()
사용자 정의 함수 함수명 <- function(매개변수1, 매개변수2, . . . ) {
 함수가 구현할 내용
 . . .
 return(결괏값)
}
# 사용자 정의함수 생성하기

function1 <- function(x,y,z) {
 result1 <- x+y*z
 return(result1)
}

# 사용자 정의 함수 테스트하기

function1 (2,3,4)
[1] 14
패키지 함수 - 패키지란? 여러 함수를 기능에 따라 묶어 놓은 것
- 패키지를 설치해야 사용할 수 있는 함수가 있다.

 

03-2 패키지

 

  • 패키지 설치하기
  • 함수 : install.packages(“패키지명”)
  • R 스튜디오 packages 탭 : [install] 버튼 -> 검색 후 설치

 

  • 설치한 패키지 확인하기
  • 사용가능한(설치된) 모든 패키지 목록 : library()
  • 설치한 패키지 로드하기 : library(패키지명)
  • 패키지 삭제하기 : remove.packages(“패키지명”)

 

  • 주요 패키지 활용하기
분류 기능 패키지명
로드 DB 처리 RMySQL, RPostgress
엑셀 처리 XL Connect, xlsx
핸들링 데이터 조작 dplyr
데이터 레이아웃 변환 reshape2
문자열 처리 stringr
시각화 그래프 ggplot2
워드클라우드 wordcloud
구글 차트 googleVis
모델링 선형 혼합 효과 모형 lme4
비선형 혼합 효과 모형 nlme
머신러닝 랜덤포레스트 randomForest
범주형 데이터 시각화 vcd
Lassp, elastic-net 회귀분석 glmnet
생존분석 survival
회귀분석 및 분류 모델의 트레이닝 caret
리포트 웹 대시보드 shiny
공간 지리지도 maps
Google map ggmap
기타 대용량 text 데이터 처리 data.table
멀티코어 사용으로 병렬 프로세싱 처리 parallel
XXL 문서 처리 XML
JSON 데이터 처리 jsonlite
HTTP connection httr

 

03-3 조건문과 반복문

 

  • 제어흐름 (control flow)
  • 프로그래밍에서 함수가 호출되는 순서
  • 일반적으로 위에서 아래로 ==> 흐름을 변경하기 위해 사용하는 “조건문” 과 “반복문”
  • 조건문 : 조건과 일치할 때 코드를 수행
  • 반복문 : 주어진 조건에 맞게 코드를 반복 수행

 

  • 연산자 (Operator)
  • 프로그램에서 데이터를 처리하는 연산 기호
이름 기호 기능
할당 연산자
(assignment operator)
<- 우항에 있는 값이 좌항에 할당 특정 값을 변수에 저장
함수 인자에 값을 넣을 때 사용할 수 있다
산술 연산자
(arithmetic operator)
+
-
*
/
%/%
%%
**, ^
더하기
빼기
곱하기
나누기

나머지
제곱수
숫자를 계산하여 값을 출력
관계 연산자
(relational operator)
>
>=
<
<=
==
!=
!
크다
크거나 같다
작다
작거나 같다
같다
같지 않다
아니다
변수 간의 혹은 변수와 값을 비교하여 관계를 TRUE() 또는 FALSE(거짓)의 진릿값으로 알려주는 연산을 수행하는 연산자
논리 연산자
(logical operator)
&
|
그리고 (and)
또는 (or)
관계 연산자로 얻은 진릿값을 다시 연산할 때

 

  • if-else 조건문
  • 조건문 : 조건이 TRUE 면 실행되는 코드 구문
if (조건) {
조건이 TRUE()일 때 실행되는 구문1
} else {
조건이 FALSE(거짓)일 때 실행되는 구문2
}
if (조건 1) {
조건1TRUE()일 때 실행되는 구문1
} else if (조건 2) {
조건1FALSE(거짓)이고, 조건 2TRUE()일 때 실행되는 구문2
} else {
조건 1과 조건 2 모두 FALSE(거짓)일 때 실행되는 구문3
}

 

  • 반복문
  • 반복문 : 정해진 조건만큼 반복 실행하는 구문

 

  • for() 함수
for(변수 in 반복 횟수) {
반복 조건만큼 실행되는 구문
}
# for() 함수로 구구단 2단부터 9단까지 출력하기

for(i in 2:9) {
 for(j in 1:9) {
 print(paste(i, "*", j, "=", i*j))
 }
}


[1] "2 * 1 = 2"
[1] "2 * 2 = 4"
[1] "2 * 3 = 6"
[1] "2 * 4 = 8"
[1] "2 * 5 = 10“
...
[1] "9 * 6 = 54"
[1] "9 * 7 = 63"
[1] "9 * 8 = 72"
[1] "9 * 9 = 81"


*R studio“”를 인식 못함 (굽어진 큰 따옴표)
# for() 함수로 1부터 100까지의 합 구하기

sum <- 0
 for(i in 1:100) {
  sum <- sum + i
}
cat(sum)
5050

 

  • apply() 함수
apply(x, margin, 함수) 행렬 연산에 사용
x <- 행렬
margin <- 1이면 행, 2이면 열에 함수가 적용
lapply(x, 함수) 연산결과를 리스트로 반환
변수를 세로로 나열하여 출력
벡터, 행렬, 리스트, 데이터 프레임 등 모든 자료형에 사용가능
sapply(x, 함수) 연산 결과를 벡터로 반환
변수를 가로로 나열하여 출력 ㅂ
벡터, 행렬, 리스트, 데이터 프레임 등 모든 데이터 형태에 사용가능

 

# apply() 함수로 iris 데이터 세트 값 처리하기

> apply(iris[, 1:4], 2, sum)
Sepal.Length Sepal.Width Petal.Length Petal.Width
876.5 458.6 563.7 179.9
> apply(iris[, 1:4], 2, min)
Sepal.Length Sepal.Width Petal.Length Petal.Width
4.3 2.0 1.0 0.1
> apply(iris[, 1:4], 2, max)
Sepal.Length Sepal.Width Petal.Length Petal.Width
7.9 4.4 6.9 2.5
> apply(iris[, 1:4], 2, median)
Sepal.Length Sepal.Width Petal.Length Petal.Width
5.80 3.00 4.35 1.30
> apply(iris[, 1:4], 2, mean)
Sepal.Length Sepal.Width Petal.Length Petal.Width
5.843333 3.057333 3.758000 1.199333

> lapply(iris[, 1:4], sum)
$Sepal.Length
[1] 876.5


$Sepal.Width
[1] 458.6


$Petal.Length
[1] 563.7


$Petal.Width
[1] 179.9


> sapply(iris[, 1:4], sum)
Sepal.Length   Sepal.Width   Petal.Length   Petal.Width
876.5     458.6     563.7    179.9

 

혼공 미션
  • 기본 미션

p. 113의 확인 문제 6번 풀고 인증하기

  • 선택 미션

p.143의 확인 문제 2번 풀고 인증하기

 
정리본 PDF

Chapter 03 R 프로그래밍 익히기.pdf
0.13MB