본문 바로가기
자격증/ADsP

[ADsP] 3.2 R 프로그래밍

by 리미와감자 2023. 2. 16.

R

R 소개

- 다양한 OS(운영체제)에서 사용할 수 있음

- 무료 오픈소스 소프트웨어

- 복잡한 통계분석 기법 가능

- S언어 기반의 프로그래밍

- 다양한 형태의 데이터 구조 지원

- 많은 패키지가 수시로 업데이트

- 커뮤니티 활발

 

R 데이터 유형

1) 기본형

- Numeric : 정수, 실수, 복소수, 수학적 연산 및 통계

- Character : 문자, 단어로 구성. ex) "abc"

- Logical : TRUE, FALSE

 

2) 구조형

- scalar, vector, matrix, array, factor

 

3) 복합형 : 서로 다른 타입의 데이터를 묶을 수 있음

- list, data.frame, data.table

 

4) Special Values

- NULL : 변수 값이 초기화되지 않음

- NA : Not Available, 데이터 값 없음(결측치)

- NaN : Not Available Number, 계산 불가능

- INF : Infinite, 무한대

 

R 기초

* 기초 문법만 학습하고, 기출에 나오는 문법들을 추가하자.

 

- print() : 한 번에 하나만 출력. ex) print(a)

- cat() : 여러 값을 묶어서 출력. ex) cat("a", "b", "c")

- ls() : 변수 목록보기

- rm() : 변수 삭제하기. ex) rm(list=ls()) = 모든 변수 삭제, rm(변수) : 해당 변수 삭제

- c() : 벡터 생성하기. 벡터 원소 중 문자가 하나라도 있으면 문자형 벡터가 됨.

- 1:5 : 수열 생성

- seq(from=0, to=20, by, length) : 수열 생성. by=step을 의미. length=총 개수

ex) seq(1, 10, 2) = 1 3 5 7 9 / seq(1, 10, length=4) = 1 4 7 10

- rep(x, time, each) : x를 몇 번(time) 몇 개씩(each) 반복

벡터 인덱싱

- v[n] : 벡터의 n번째 원소 반환. 1부터 시작.

- v[-n] : 벡터의 n번째 원소를 제외한 나머지 원소 반환.

- v[조건] : 조건을 만족하는 원소 반환

- v[start:end] : start번째 원소부터 end번째 원소까지 반환

 

벡터의 길이가 동일하지 않은 경우

- 벡터의 원소가 많은 쪽의 벡터와 동일하게 원소의 개수를 맞춘다(경고 메시지와 함께).

- [1 2] + [3 4 5 6 7] = [3+1 4+2 5+1 6+2 7+1]

 

행렬(Matrix) : 데이터의 형태가 2차원으로 행(row)과 열(column)로 구성

- 행렬 생성

1) matrix(data=NA, nrow=1, ncol=1, byrow=FALSE, dimnames=NULL)

- byrow : 값의 입력 방향. FALSE = ‘’, TRUE = '‘. 기본값은 ‘.

- dimnames : 각 차원의 이름

2) rbind(vectors or matrices), cbind(vectors or matrices)

 

행렬 관련 함수

- dim(x), dim(x) <- : 행렬 차원 확인, 부여

- nrow(x), ncol(x) : 행의 수, 열의 수

- dimnames(m), dimnames(m) <- : 각 차원의 이름 확인, 부여

- rownames(m), rownames(m) <- : 각 행의 이름 확인, 부여

- colnames(m), colnames(m) <- : 각 열의 이름 확인, 부여

- t(m) : 전치행렬 반환

- diag(m) : 대각원소 반환

- solve(m) :

 

행렬 인덱싱

- m[nrow,], m[-nrow,] : 특정 행 반환

- m[,ncol], m[,-ncol] : 특정 열 반환

- m[nrow, ncol] : 특정 위치의 원소 반환

 

배열(Array) : 다차원의 데이터 구조

- 배열 생성 : array(data, dim=(,,...))

 

데이터 프레임(data.frame) : 엑셀의 워크시트와 같은 2차원 구조

- 서로 다른 데이터 타입 담을 수 있음

- 벡터가 모여서 프레임을 구성

- 데이터 프레임 생성 : data.frame(변수명=벡터, ... , stringasFactors = TRUE)

- stringasFactors = TRUE이면 문자열을 factor형으로 저장

 

리스트(List)

- 서로 다른 데이터 타입 담을 수 있음

- 리스트에 저장된 데이터를 index 또는 key를 사용해 접근

- 리스트 생성 : list(key1=value1, key2=value2, ...)

- a[[1]](첫번째 방)a[1](첫번째 원소) 구분하기

 


가장 기본적인 내용들만 요약했으므로, 기출 문제를 풀면서 필요한 문법을 따로 공부하자!

 

댓글