1. R의 데이터 타입
(1) 문자형 타입
- 따옴표 혹은 쌍따옴표로 표시하며, 숫자/문자/논리형 모두 따옴표나 쌍따옴표로 묶을 시 문자형이 됨
(2) 숫자형 타입
- numeric(숫자형), double(실수), integer(정수), complex(복소수) 등이 있음
(3) 논리형 타입 (logical)
- 참 혹은 거짓
(4) NaN, NA, NULL
- Not a number = 숫자가 아님
- Not Available = 결측값 (NA는 공간을 차지하는 결측, NULL은 공간을 차지하지 않는 존재하지 않는 값)
2. R 기본 문법
(1) 대입 연산자
- 오른쪽 값을 왼쪽에 대입 (<-, <<-, =)
- 왼쪽 값을 오른쪽에 대입 (->, ->>)
(2) 비교 연산자
- NA는 비교할 값이 존재하지 않으므로 어떤 것과 비교해도 NA를 반환
- ==, <=, is.character 등
(3) 산술 연산자
- 두 숫자형 타입의 계산을 위한 연산자
- (+, -, *, /)
- %/% (몫), %% (나머지)
- ** (제곱)
(4) 기타 연산자
- 부정연산자: !
- AND 연산자: &
- OR 연산자: |
3. R 데이터 구조
(1) 벡터
- 벡터는 타입이 같은 여러 데이터를 하나의 행으로 저장하는 1차원 데이터 구조
- c를 써서 데이터를 묶을 수 있음
- v4 <- c( 3, TRUE, FALSE)를 출력하면 ([1] 3 1 0 )이 출력됨
(2) 행렬
- 2차원 구조를 가진 벡터로, 행렬에 저장된 모든 데이터는 같은 타입이어야함. 그렇지 못할 경우 자동으로 타입 변환
- matrix( c(1:6), nrow = 2) -> 1부터 6까지의 벡터를 행이 2개인 행렬로 만든다
- 기본적으로 열부터 1,2,3 순으로 채우지만, byrow = T 옵션을 지정하면 행부터 값이 채워진다
- 벡터가 저장되어있는 v1이라는 변수에 div(v1) <- c( 2, 3)과 같이 행/열을 지정해주게 되면 벡터로 출력가능하다
(3) 배열
- 3차원 이상의 구조를 갖는 벡터를 배열이라고 함
- array를 사용하여 배열을 만들 수 있으나 몇 차원의 구조를 갖는지 dim 옵션에 명시해야 한다. (안 그러면 1차원 생성)
- a1 <- array( c( 1: 12) , dim = c (2 , 3, 2) )
- dim 함수로도 가능하다
(4) 리스트
- 데이터 타입, 데이터 구조에 상관없이 사용자가 원하는 모든 것을 저장할 수 있는 자료구조 (성분간 이질적)
- L <- list() 지정 뒤, L[[1]] <- ?, L[[2]] <- ?, L[[3]] <-? 식으로 원하는 것을 저장 가능
(5) 데이터프레임
- 데이터 분석을 위한 2차원 구조를 갖는 관계형 데이터 구조
- 행렬과 같은 모양을 갖지만, 여러 개의 벡터로 구성되어 있어 각 열은 서로 다른 타입의 데이터를 가질 수 있음
- v1, v2에 서로 다른 타입의 벡터가 있다 가정할 때, df1 <- data.frame (v1, v2)로 데이터프레임 생성 가능
4. R 내장함수
(1) 기본 함수
| help() 또는 ? | - 함수들의 도움말 보기 |
| paste() | - 문자열 이어붙이기 |
| seq() | - 시작값, 끝값, 간격으로 수열 생성 - seq( 1, 10, by=2) -> 1 3 5 7 9 |
| rep() | - 주어진 데이터를 일정 횟수만큼 반복 - rep(1, 5) -> 1 1 1 1 1 |
| rm() | - 대입 연산자에 의해 생성된 변수 삭제 |
| ls() | - 현재 생성된 변수들의 리스트를 보여줌 |
| print() | - 값을 콘솔창에 출력 |
(2) 통계 함수
- range: 입력된 값의 최대값과 최소값을 출력
5. R 데이터 핸들링
(1) 데이터 이름 변경
- 행렬, 배열, 데이터프레임 등2차원 이상의 구조는 colnames와 rownames함수로 행/열 이름을 알 수 있으며 이름 지정이 가능함
(2) 데이터 추출
- 인덱싱 기호 [, ]를 사용해 원하는 위치의 데이터를 얻음
- 행/열의 이름으로도 데이터 추출 가능
- m1[ , 'c1']
- 데이터 프레임에서는 $ 기호를 사용해 원하는 열의 데이터 추출 가능 (df1&v1)
(3) 데이터 결합
| v1 <- c(1:3), v2<- c(4;6) 가정 | |
| rbind (행 결합) | rbind(v1,v2) -> 1,2,3 (1행) 4,5,6 (2행) |
| cbind (열 결합) | cbind(v1,v2) -> 1,2,3 (1열) 4,5,6 (2열) |
- 벡터와 벡터의 결합에서는 부족한 데이터를 앞에서부터 다시 재사용해 활용하며 오류와 함께 결과 반환
6. 제어문
(1) 반복문
- for 반복문
- while 반복문
(2) 조건문
(3) 사용자 정의 함수
(4) 주석
- # 으로 표시
7. 통계 분석에 자주 사용되는 R 함수
(1) 숫자 연산
- round: 반올림
- ceiling: 올림
- floor: 내림
(2) 문자 연산
- tolower: 문자열을 소문자로 바꿈
- toupper: 문자열을 대문자로바꿈
- nchar: 문자열의 길이를 구함
- substr: 문자열의 일부분을 추출
- strsplit: 문자열을 구분자로 나누어 쪼갬
- grepl: 문자열에 주어진 문자가 있는지 확인
- gsub: 문자열의 일부분을 다른 문자로 대체
(3) 벡터 연산
- paste: 주어진 벡터를 구분자를 기준으로 결합
- table: 데이터의 개수를 구함
- order: 벡터의 순서를 구함
(4) 행렬 연산
- t: 전치행렬을 구함
- diag: 대각행렬을 구함
- %*%: 두 행렬을 곱합
(5) 데이터 탐색
(6) 데이터 전처리
- subset: 데이터에서 조건식에 맞는 데이터를 추출
- merge: 데이터를 특정 열을 기준으로 병합
- apply: 데이터에 열(또는 행)별로 주어진 함수를적용 (df1, 1, sum -> 행에 sum 함수 적용)
(7) 정규분포
- dnorm: 주어진 값에서 함수값 구함
- rnorm: 정규분포에서 주어진 개수만큼 표본을 추출
- pnorm: 주어진 값보다 작을 확률값 구함
- qnorm: 주어진 넓이 값을 갖는 x값 구함
(8) 표본추출
- runif: 균일 분포에서 주어진 개수만큼 표본 추출
- sample: 주어진 데이터에서 주어진 개수만큼 표본 추출
(9) 날짜
- Sys.Date: 연/월/일 출력
- Sys.time: 연/월/일/시간 출력
(10) 산점도
- plot: 주어진 데이터의 산점도를 그림
- abline: 산점도에 추가 직선을 그림
(11) 파일 읽기 쓰기
- write.csv: 주어진 데이터를 csv로 저장
- saveRDS: R파일을 저장
(12) 기타
- install.packages: 패키지 설치
- library: 설치된 패키지 호출
'ADsP' 카테고리의 다른 글
| [ADsP] 7. 통계의 이해 (0) | 2026.02.02 |
|---|---|
| [ADsP] 6. 데이터 마트 & 데이터 탐색 (1) | 2026.02.01 |
| [ADsP] 4. 분석 마스터플랜(2) (1) | 2026.01.31 |
| [ADsP] 4. 분석 마스터플랜(1) (0) | 2026.01.31 |