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 |
댓글