본문 바로가기

R

빅데이터 분석기사 실기 독학 ① - R 프로그래밍 기초

*본 글은 개인적으로 헷갈리거나 정리하고 싶은 것을 블로그에 타이핑 필기하는 용도로 작성
*오타가 있을 수 있음 / *사용한 책 : 이기적 빅데이터분석기사 실기 기본서(2022)


변수 : 데이터를 저장하는 메모리 공간, 언제든 변경 가능, 할당식(<-)이 실행도리 때 자동 선언 및 생성

데이터 타입 : 변수에 저장되는 값의 형식, 스칼라, 벡터, 행렬, 데이터프레임, 리스트, 배열이 있음

- 스칼라형 : 일차원의 값, 숫자형, 문자형, 논리형이 있음, 숫자형은 정수형과 실수형으로 구별됨

c() 함수 : 데이터 생성 및 결합 가능, 벡터 생성(숫자형, 문자형), 숫자형과 문자형 섞어서 생성하면 모두 문자형이 됨

paste() 함수 : 여러 문자열을 하나로 합칠 수 있음

 

산술연산자

비교 연산자

날짜형 : as.Date() -> 괄호 안에 있는 변수를 날짜형으로 변환

논리형 : 참과 거짓을 표현, 참=True(T), 거짓=False(F)

**연산자 우선순위

: () > ^,** > +,-(부호) > *,/,//,%/%,%% > +,-(더하기,빼기) > 관계연산자 > not > and > or

 

벡터구조

- rep() 함수 : 특정 숫자를 반복해서 생성

- seq() 함수 : 수열 생성시 사용

- 인덱스는 대괄호를 이용하여 표현하며 1부터 시작(python은 0부터 시작)

- names() 함수를 사용해 벡터의 각 원소에 이름을 부여하면 이름을 이용해서 원소에 접근할 수 있음

- 벡터는 연산이 가능, 각각의 대응하는 위치의 원소들 간 연산이 진행됨

- 벡터의 길이가 다른 경우 길이가 짧은 벡터의 원소가 반복적으로 채워짐, 집합연산도 가능

행렬

- 행과 열의 수가 지정된 2차원 벡터 구조의 데이터 집합

- 하나의 행렬은 같은 데이터 타입(문자열, 숫자 등)을 가진 원소들만 저장할 수 있음

- matrix() 함수 : 행렬 생성 => matrix(데이터, 행개수, 열개수, byrow=T or F)

(byrow 옵션 : 행부터 먼저 채워지도록 하기 위함)

- 행렬의 접근 순서는 행->열

- 사칙연산 가능하며 행렬 연산을 위한 함수 제공

데이터프레임

- 표의 형태를 가진 구조

- 벡터들의 모임, 데이터프레임에 속한 벡터들은 서로 다른 자료형을 가질 수 있음

 - 벡터는 데이터프레임의 열을 이루고, 열은 변수, 행은 해당 변수의 값에 해당

- data.frame() : 데이터 프레임 생성 => data.frame(변수1=벡터1, 변수2=벡터2, ..., 변수n=벡터n)

- 데이터프레임 구조 확인 : str() 함수 이용

ex) df = data.frame(~) => str(df) 를 통해 데이터프레임 구조 확인

- df[2. ] -> 2행 전체 데이터를 보여줌

- df[ ,4] -> 4열 전체 데이터를 보여줌 (df[ ,4,drop=FALSE]-> 4열 전체 데이터를 세로로 보여줄 수 있음)

- df$열이름 변수를 사용하여 열 선택 가능

 

head(데이터프레임, n=행개수) : 상위 n개 행을 선택

tail(데이터프레임, n=행개수) : 하위 n개 행을 선택

subset(데이터명, 조건) : 조건에 맞는 행만 가져올 수 있음

subset(데이터명, 조건, select=c(원하는 열, 원하는 열2)) : 조건에 맞는 행만 가져올 수 있는데 열 지정된 것

rbind(데이터프레임1, 데이터프레임2) : 두 개 이상의 데이터 프레임을 행으로 결합(열개수 및 이름이 동일해야 함)

cbind(데이터프레임1, 데이터프레임2) : 두 개 이상의 데이터프레임을 열 결합(행 개수 동일해야 함)

 

리스트 : 벡터, 데이터프레임, 배열, 함수 등과 같은 R의 모든 객체를 담을 수 있는 데이터 구조, (키,값) 형태로 저장

- list() : 리스트 생성 함수 => list(키1=값1, 키2=값2,...,키n=값n)

- lisn[n] : n번째 객체(벡터, 행렬, 데이터프레임 등)를 가져옴

- list$키 : '키'값에 해당하는 원소 출력

 

조건문 : 만약 ~하면 ~하다와 같은 상황을 구현하기 위해서 사용

- if : 조건이 참인 경우에 지정한 문장을 실행하고, 거짓인 경우에는 if문 다음 문장을 실행

- if~else : 조건이 참인 경우에 지정한 문장을 실행하고, 거짓인 경우에는 else 다음 문장을 실행 

- ifelse : 다수의 데이터에 대해 참과 거짓을 판별할 때 사용

 

반복문 : 프로그램의 일부 코드를 여러번 반복시킬때 사용

- for : 범위의 시작부터 마지막까지 변수에 값을 하나씩 대응하면서 {}안의 문장을 반복 => for(변수 in 범위){ }

- while : 조건을 만족하는 동안 while 문에 포함된 문장을 반복해서 실행, 조건이 항상 참이면 무한반복, break문을 사용하여 반복 멈출 수 있음 => while 조건 { }

 

자주 사용되는 R 함수