본문 바로가기
빅데이터 부트캠프/R

빅데이터 부트캠프 48일차

by Mecodata 2022. 9. 13.

R

- 데이터의 처리, 통계 계산 및 분석, 그래픽스를 위한 오픈 소스 프로그래밍 언어

- Rstudio라는 IDE 사용

- 파일 확장자는 .R

 

벡터

- R의 기본 데이터 타입

- 하나 이상의 원소로 이루어진 자료 (한 가지의 데이터 타입만 저장할 수 있는 리스트라 생각하면 편리)

- 하나의 벡터 안에는 동일한 타입의 데이터들이 입력되야 함

- R에서 벡터는 c()를 이용하여 생성

- 벡터간 중첩(벡터 안의 벡터) 불가능 

 

R 기초

- R은 인덱스가 0부터가 아닌 1부터

- R은 입력하는 원소의 개수가 두 개 이상이면 무조건 c()를 씌워서 입력해야 함

ex) A[1,2] -> wrong, A[c(1,2)] -> correct

- 명령문의 맨 앞 맨 뒤에 각각 ( )를 입력하면 print 기능이 실행됨

 

- :을 이용한 슬라이싱 가능

ex) 1:3 -> 1 2 3       9:7 -> 9,8,7

- 파이썬과 다르게 A[-1]을 하면 A의 마지막 순서 원소를 반환하는 것이 아니라 첫번째 원소를 제외한 나머지 원소를 반환

- NA = 결측치 

- 어떠한 숫자든 NA와 연산시 결과는 무조건 NA

- na.rm = T -> 벡터 안에 NA값이 있을시 NA 제거 

- NULL = 빈 객체

 

- ls() = 변수 확인, rm() = 변수 삭제

- seq(from=, to=, by=) = 등차수열 생성 (from = 시작 숫자, to= 끝 숫자, by= 간격, length.out = 수열 길이 설정)

ex) seq(1,5,2) = 1 3 5    seq(1,5) = 1 2 3 4 5
- rep(, times=, each=) = 해당 원소를 반복하는 벡터 생성 (times = 벡터 전체 반복횟수, each = 각 원소 반복횟수)

ex) rep(1, times=5) = 1 1 1 1 1    rep(1:3, each=2) = 1 1 2 2 3 3   

      rep(1:3, each=3, times=2) = 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3  

 

- 원소의 개수같은 두 벡터를 비교 연산자(<,<=,=>,>,=)와 산술 연산자(+,-,*,/,%)를 이용하여 비교하면 인덱스 번호 같은 각각의 원소끼리 비교 결과 반환 

- 원소의 개수가 서로 다르면 원소의 개수가 더 적은 벡터의 원소를 다시 처음 인덱스 순서부터 재활용해서 적용

※ %% = 나눗셈의 나머지, %/% = 나눗셈의 몫

 

- names(A) = 벡터 A의 각 컬럼에 이름 지정

- installed.packages() = 설치된 패키지 확인

- search() = 현재 메모리에 로딩된 패키지 확인

- install.packages('패키지명') = 패키지 설치 

- remove.packages('패키지명') = 패키지 삭제

- library('패키지명') = 패키지에 있는 함수 사용 (파이썬의 import)

 

- value %in% 벡터 = 해당 value가 벡터 안에 있는지 True/False 반환 (in이 아닌 %in%)

- 숫자 데이터로 구성된 벡터 + 숫자 = 해당 벡터의 각 원소에 해당 숫자 덧셈 (나머지 사칙연산도 가능) 

 

- is.타입명(X) = X가 해당 타입인지 TRUE/FALSE 반환

- as.타입명(X) = X를 해당 타입으로 변환 

※ 벡터는 숫자형 데이터만을 가진 numeric문자열 데이터만을 가진 character로 구분

 

팩터(factor)

- 범주형 데이터를 표현하기 위한 데이터 타입

- 레벨(level) = 범주형 변수가 담을 수 있는 값의 목록(=범주)

- factor(표현하려는 값, 표현하려는 값이 속한 범주 데이터를 가진 벡터)로 생성

ex) X = factor('a', c('a','b','c')) = a,b,c로 나뉜 범주 중에서 a를 X에 입력

- nlevels(팩터형 변수) = 중복을 제외한 범주 개수 반환
ex) nlevels(X) = 3

- levels(팩터형 변수) = 범주 목록 조회 

ex) levels(X) = 'a', 'b', 'c'

 

리스트(list)

- 데이터를 key:value 형태로 저장 (순서가 존재하는 파이썬의 딕셔너리)

- 벡터와 다르게 서로 다른 데이터 타입 저장 가능

- 특정 키의 value를 확인하려면 [리스트명$key] 형식으로 입력해야 함 (.이 아닌 $)

 

행렬(matrix)

- matrix(c(), nrow=행 개수 지정, ncol=열 개수 지정)

- 2차원 데이터 구조

- 하나의 행렬 안에는 동일한 타입의 데이터들이 입력되야 함

- 데이터를 우선시하여 입력하고 싶을때 byrow = True를 matrix()안에 입력 (행렬은 기본적으로 열 우선 입력)

- dimname = list( 이름 설정, 이름 설정) = 각 행과 열의 이름 설정

- 행렬의 원소들을 출력할 때 빈칸은 전체를 의미 

ex) A[1,] = 행렬 A의 1행 전체 원소 출력, A[,2] = 행렬 A의 2열 전체 원소 출력

- A+B, A-B, A%*%B = 행렬 A,B의 덧셈, 뺄셈, 곱셈 (곱셈은 *가 아니라 %*%)

 

배열(array)

- array(c(), dim=배열의 차원 지정(기본값 1), dimnames=차원 이름 설정)

- 하나의 배열 안에는 동일한 타입의 데이터들이 입력되야 함

- 행렬과 비슷하지만 배열은 3차원 이상의 데이터 입력 가능

 

데이터프레임(data.frame)

- 데이터를 테이블 형식으로 정리

- data.frame(컬럼1=c(), 컬럼2=c(), ...) -> 입력한 컬럼명으로 컬럼 생성

- [데이터프레임명$컬럼명] 형식으로 해당 컬럼의 데이터 조회 가능 

- [데이터프레임명$컬럼명 <- x] 형식으로 해당 컬럼 데이터 수정 가능

- [데이터프레임명$ 새로운 컬럼명 <- c()] 형식으로 새로운 컬럼 추가 가능

- 행렬과 같은 방식으로 특정 부분의 데이터 조회 가능 (데이터프레임명[행 인덱스 번호, 인덱스 번호])

- head(데이터프레임명, nL) = 맨 앞에서부터 n개의 데이터 조회 (기본값은 n=6)

- tail(데이터프레임명, nL) = 맨 뒤에서부터 n개의 데이터 조회 (기본값은 n=6)

- View(데이터프레임명) = 데이터 뷰어로 데이터 조회

 

조건문

- if {참일때 실행문} else {거짓일때 실행문}

- ifelse(조건, 참일때의 값, 거짓일때의 값)

 

반복문

- for (a in value) {반복할 실행문} = value안에 있는 각각의 값을 a에 할당하여 반복 실행

- while (조건) {조건이 참인 경우의 실행문} = 조건이 참인 동안 반복 실행

- repeat {반복할 실행문} = 해당 실행문 반복 (Java의 do~while)

※ break = 조건 만족시 반복문 종료, next = 조건 만족시 반복문 다음 순서로 (파이썬의 continue)

 

함수

- function(인자, ...) {함수 본문}

- 함수 안에 새로운 함수를 중첩해서 생성할 수 있음

- 인자의 개수를 명확히 정의할 수 없을 경우 function 안에 일부 인자만 입력하고 뒤에 ...을 입력한 뒤 내부에서 호출할 다른 함수에 ... 입력 

- <<- = 전역변수 설정(파이썬의 global)

 

 

'빅데이터 부트캠프 > R' 카테고리의 다른 글

빅데이터 부트캠프 52일차  (0) 2022.09.19
빅데이터 부트캠프 49일차  (0) 2022.09.14

댓글