[혼공학습단 10기]혼공 R데이터분석 공부 3주차😊

rktdnjs·2023년 7월 23일
0

혼공학습단10기

목록 보기
3/7

참고한 서적 : https://hongong.hanbit.co.kr/r-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D/ (혼자 공부하는 R언어)
📌이번 주차내용
→ R언어에서의 변수 및 함수 알아보기
→ R언어에서 패키지는 어떻게 관리하는가?
→ R언어에서 조건문 및 반복문(apply()) 사용

🎁 변수와 함수 🎁

변수 만들기

변수 : 특정 범위 안에서 다양하게 변하는 값
함수 : 특정 기능을 수행하기 위해 짜여진 프로그래밍 구문

R에서 변수명 지을 때 지켜야 할 규칙
- 첫 문자는 반드시 영문자 혹은 마침표(.)를 사용한다.
- 첫 문자는 숫자, 밑줄 문자(_)를 사용할 수 없다.
- 마침표(.)와 밑줄 문자(_)를 제외한 특수 문자는 사용할 수 없다.
- 대문자와 소문자를 구분한다.
- 변수명 중간에 빈칸을 넣을 수 없다. 빈칸은 밑줄 문자(_)를 활용하여 표현한다.
# R언어에서 변수 생성 방법
변수명 <- 값 # ex) x <- 10(x라는 변수에 10이라는 값 할당함)

함수 호출

# R언어에서 함수를 호출하는 방법(함수를 불러서 사용함!)
함수명(인자) # ex) max(x) (사전에 사용하려는 함수가 정의되어 있어야 한다)

내장 함수 사용

내장 함수 : 별도의 패키지를 설치하지 않고 사용할 수 있는 함수

# R언어에서의 일부 함수는 내장 함수여서, 따로 import하지 않고 사용할 수 있다.
# 예를 들어, print(), sum() 함수 등이 존재한다.
print("Hello R!")
a <- sum(1:100) # 1부터 100까지 합함
a # 5050 출력됨!

사용자 정의 함수(커스텀 함수) 만들기

사용자 정의 함수 : 내장 함수 외에 사용자가 원하는 기능을 갖춘 함수를 따로 정의한 것
함수명 : 함수의 이름, R 환경에 저장되며 함수를 호출할 때 사용한다.
매개변수 : 함수에 전달되는 변수의 이름. 매개변수의 개수는 함수마다 다르게 설정 가능!
결과값 : 함수가 실행되고 최종적으로 얻은 결과, 함수 내용의 마지막 표현식이다.

# R언어에서 사용자 정의 함수를 만드는 방법! 크게 아래와 같은 구조를 띈다.
함수명 <- function(매개변수1, 매개변수2, ...) {
	함수의 내용(로직, 어떻게 동작할 것인지!)
	return(결과값)
}
# R언어에서 커스텀 함수를 만든 예시(4개 매개변수의 값을 곱해서 반환하는 함수)
multifly_four_number <- function(a, b, c, d) {
	res <- a * b * c * d
	return(res)
}
multifly_four_number(1, 2, 3, 4) # 24 출력

번외 - return 함수는 어떻게 활용할 수 있을까?

# 함수에는 return 이라는 표현식이 존재한다.
# 이 return을 이용하면 함수를 호출한 곳에 값을 남겨주어 저장하여 활용할 수 있다!
a <- sum(1:100) # 이렇게 하면 a라는 변수에 sum(1:100)호출의 결과인 5050이 저장된다
a + b # 이런식으로 함수를 호출한 결과를 가져다가 활용할 수 있는 것!

🎁 패키지 🎁

패키지 설치

패키지(package) : 다양한 함수를 기능에 따라 묶어서 제공하는 형태
R언어 외에도 다양한 프로그래밍 언어에는 많은 패키지가 존재하며, 원하는 기능을 가져다 사용함!

패키지를 설치하는 방법(2가지)

  1. 함수를 이용하여 설치하는 방법

    Script 탭에서 install.packages()를 이용하여 원하는 패키지를 설치할 수 있다.
    함수를 이용하여 패키지를 설치하는 방법은 다음과 같다.

    install.packages("패키지 이름")

    예시

  2. R 스튜디오 인터페이스를 이용하는 방법

    R 스튜디오 인터페이스로 패키지를 설치할 수 있다.
    패키지를 Packages 탭에서 직접 선택해서 설치한다!

설치한 패키지 확인

다음과 같은 코드를 작성하여 실행하면 설치한 패키지들을 확인할 수 있다.

library() # 설치된 패키지 확인!

패키지 로드

# 설치했던 reshape2 패키지를 불러온다.
# library(사용하고 싶은 패키지의 이름, 단 설치되어있어야 사용가능함)
library(reshape2)

패키지 삭제

# 설치했던 reshape2 패키지를 삭제한다.
# 여기서는 패키지명을 큰 따옴표로 감싸주어야 함!!
remove.packages("reshape2")

HOT한 패키지 활용하기(단순 참고용!)


🎁 조건문과 반복문 🎁

조건문 & 반복문 & 연산자 & 제어 흐름 단어에 대해서 알아보자

조건문 : 특정 조건과 일치할 때 코드를 수행하는 문장
반복문 : 주어진 조건에 맞게 코드를 반복 수행하는 문장
연산자 : 프로그램에서 데이터를 처리하는 연산 기호
제어 흐름 : 함수가 호출되는 순서

연산자(Operator)

연산자는 특정 변수나 값들에 대한 연산을 수행할 수 있도록 해 준다.
종류는 크게 다음과 같은 4가지 종류가 존재한다!

  • 할당 연산자(Assignment Operator)
  • 산술 연산자(Arithmetic Operator)
  • 관계 연산자(Relational Operator)
  • 논리 연산자(Logical Operator)

할당 연산자

할당 연산자기능
특정 변수에 값을 저장한다
# R언어에서의 할당 연산자 활용
A <- 2 # A라는 변수에 2라는 값을 저장
B = 10 # =도 변수에 값을 저장할 수 있으나, <- 보다 우선순위가 낮다는 특징이 있음!
C = D <- 10 # <-가 =보다 우선순위가 높기 때문에 D에 10 할당, 이후 C에도 10할당!
C # 10 출력
D # 10 출력

변수에 값을 할당할 때 그리고 = 2개를 사용할 수 있는데, 이 둘에는 차이점이 존재한다!

  1. =보다 가 우선순위가 높다.

    E <- F = 10 # <-가 =보다 우선순위가 높기 때문에 E에 F할당, 근데 이 시점에 F는 값이 없음!
    # 따라서 여기에서는 에러가 발생한다.

  2. =는 함수 인자에 값을 넣을 때 사용할 수 없지만, 는 사용할 수 있다.

    sum(y <- 1) # <-는 함수 인자에 값을 넣을 때 사용할 수 있다!
    y
    sum(z = 1)  # =는 함수 인자에 값을 넣을 때 사용할 수 없다..
    z

산술 연산자

산술 연산자기능
+더하기
-빼기
*곱하기
/나누기
%/%
%%나머지
** 또는 ^제곱수

관계 연산자(Boolean 형태의 값으로 값을 전달함)

관계 연산자기능
>크다
크거나 같다
<작다
작거나 같다
==같다
같지 않다
!아니다
5 != 5 # 같지 않으면 TRUE, 같으면 FALSE
!10 # 10이 아니다
!FALSE # FALSE가 아니다

논리 연산자

논리 연산자기능
&그리고(and)
x <- 10
y <- 5
(x > 5) & (y > 5) # &(and) 둘 다 참이면 TRUE, 그 외에 FALSE
(x > 5) | (y > 5) # |(or) 둘 중 하나라도 참이면 TRUE< 그 외에 FALSE

if - else & if - else if - else 조건문

# R언어에서의 if - else 구조(대부분의 프로그래밍 언어가 이와 동일함)
if(조건) {
	조건이 TRUE일 때 실행할 구문
} else {
	조건이 FALSE일 때 실행할 구문
}
# R언어에서의 else if(2개 이상의 조건을 걸어서 조건문을 형성할 때 사용)
if(조건 1) {
	조건 1이 TRUE일 때 실행할 구문
} else if (조건 2) {
	조건 1이 FALSE + 조건 2가 TRUE일 때 실행할 구문
} else {
	조건 1과 2 모두 FALSE일 때 실행할 구문
}

반복문

반복문은 대표적으로 for(), while() 함수가 존재한다.
그런데 R언어에서는 데이터의 빠른 연산을 처리해주는 apply() 함수도 존재한다!

for() 반복문

# R언어에서의 for 반복문 구조
for(변수 in 반복 횟수) {
	반복 조건만큼 실행하는 구문
}

apply() 반복문

R언어에서는 벡터, 행렬, 리스트를 많이 다루기 때문에 행과 열 단위를 연산하는 apply()를 주로 씀!
apply() 함수에는 여러 종류가 있으며, 각 함수의 구조와 기능에 대해서 간략히 알아보도록 하자.

# apply() 함수로 행렬 값 계산하기
x <- matrix(1:9, 3, 3) # 3x3 행렬 정의
x

apply(x, 1, sum) # 각 행을 더한 결과 출력
apply(x, 2, sum) # 각 열을 더한 결과 출력
apply(x, 2, min) # 각 열에서의 최솟값 출력
apply(x, 1, max) # 각 행에서의 최대값 출력


🥃 기본 미션 🥃

113p 확인 문제 6번

3개의 변수를 합하는 함수를 다음과 같이 구성해보았습니다!


🍸 선택 미션 🍸

143p 확인 문제 2번

빈칸에는 차례대로 else if, else가 들어갑니다.

age <- 20
if (age < 13) {
  print("어린이입니다.")
} else if (age < 19) {
  print("청소년입니다.")
} else {
  print("성인입니다.")
}

profile
프론트엔드 꿈나무 개발자입니다:)

0개의 댓글