모두를 위한 R 데이터 분석 입문. CH2 변수, 벡터의 연산 정리
2. 변수
변수명에 영문자, 숫자, 마침표(.), 밑줄(_)을 사용할 수 있다.
화살표 모양의 '<-'을 이용해 변수에 값을 저장할 수 있다.
a<-10 |
변수에 어떤 값이 저장되어있는지 확인하기 위해
- 단순히 변수명을 입력하거나
- print() 함수를 사용할 수 있다.
변수의 자료형 (숫자,문자,논리, 특수값)
특수값 )
NULL = 정의되어 있지 않음, 자료형이 없고 길이도 0이다.
NA = 결칙값(missing value)
NaN = 수학적으로 정의가 불가능한 값 (sqrt(-3))
Inf, -Inf = 양의 무한대, 음의 무한대
문자와 숫자의 산술연산은 불가능하다.
3. 벡터의 이해
1차원 배열 데이터: 단일 주제에 대해 값을 모아놓은 데이터, 데이터가 일직선상에 저장
2차원 배열 데이터: 2가지 주제에 대해 값을 모아놓은 데이터(행, 열이 존재)
벡터vector : 같은 자료형의 여러 개의 값을 저장할 수 있다.
*R의 자료구조
1차원: 벡터(vector)
2차원: 매트릭스(matrix) 또는 데이터프레임(data frame)
에 저장한다.
벡터를 생성하는 데 사용하는 함수는 c()이다.
c()함수는 여러 개의 값을 묶어준다.
반드시 벡터에는 동일한 종류의 자료형이 저장되어야 한다.
x <- c(10,20,30) |
연속된 정수로 이루어진 벡터 생성은 :을 이용한다 (1~50까지 저장할 때)
v1 <- 50:90 |
일정한 간격의 숫자로 이루어진 벡터는 seq(시작값, 종료값, 간격) 함수를 이용한다.
v3 <-seq(1,101,3) |
반복된 숫자로 이루어진 벡터 생성은 rep(반복대상값, 반복횟수) 함수를 이용한다.
1을 5번 반복 | v5 <-rep(1,times=5) |
1에서 5까지 3번 반복 | v6 <-rep(1:5,times=5) |
1,5,9를 3번 반복 | v7 <-rep(c(1,5,9)), times=3) |
1,5,9를 각각 3번 반복 | v8 <-rep(c(1,5,9)), each=3) |
v8 = 1 1 1 5 5 5 9 9 9로 출력된다.
벡터의 값에 이름을 지정하기 위해서는 names()함수를 사용한다.
score에 값을 저장 값들에 이름을 부여 이름과 함께 값 출력 |
score <- c(90,85,70) names(score) <- c("John", "Tom", "Jane") names(score) |
John Tom Jane 90 85 70 |
벡터를 생성하면 1부터 차례대로 인덱스(index)가 생성된다.
d[1] 은 벡터d의 저장된 첫 번째 값을 지칭한다.
인덱스를 이용하면 벡터 내 특정 위치에 있는 값을 알 수 있다.
벡터d에 값 저장 | d <-c(1,4,3,7,8) |
d의 1,3,5번 인덱스 출력 | d[c(1,3,5)] |
d의 1번~3번 인덱스 출력 | d[1:3] |
d의 인덱스 1부터 5까지 +2하며 출력 ==홀수만 출력 |
d[seq(1,5,2)] |
d의 2번째 인덱스를 제외하고 출력 | d[-2] |
d의 3부터 5번째의 인덱스를 제외하고 출력 | d[-c(3:5)] |
벡터에서 이름으로 값을 추출할 수 있다.
GNP <- c(2090,2450,960) names(GNP) <-("Korea", "Japen","Nepal") GNP["Korea"] |
벡터에 저장된 값은 다른 값으로 변경할 수 있다.
v1 <-c(1,5,7,8,9) v1[2] <-3 v1[c(1,5)] <-c(10,20) |