본문 바로가기

R

R - Data_vector

1. Vector

(1) vector

- 하나의 열(colum)로 구성되어 있음 --> 1차원 구조

- 데이터 분석의 가장 기본 단위

- 하나의 데이터 유형(mode)만 가짐 (두가지 유형을 동시에 가질 수 없음)

 

(2) 벡터를 정의하는 속성(attribute)

- 형(mode), 길이(length), 벡터의 원소이름(names)

- ex) - 1,2,3,4 : 길이가 4인 수치형 벡터

       - "a", "b", "c" : 길이가 3인 문자형 벡터

       - 숫자 : 길이가 1인 수치형 벡터

 

1.1 vector만들기

(1) 하나의 값(element)으로 이루어진 vector

 

v1 <- 10 # data : Vector / 타입 : numeric / element : 1
v2 <- "song" 
v3 <- FALSE

 

(2) 두 개 이상의 값으로 이루어진 vector

 1) c(element,1, element2, ...)

 - c : combinem concatenate 의 약자, 원소들을 묶어서 벡터로 만듬

 - 형의 변환은 정보가 손실되지 않는 방향으로 이루어짐(예를 들어, 정수형과 실수형은 실수형으로) 

 - numeric / charactor/ logical vector 를 만들 수 있음

 - element들 간에 규칙이 없을 때 사용함

 

weight  <- c(76, 65, 45, 75) #data : Vector / type : numeric / element : 4
food    <- c("햄버거","초밥","떡볶이","꽃게탕") #data : Vector / type : chactor / element : 4
friend  <- c(TRUE,FALSE,TURE,FALSE,TURE) #data : Vector / type : logical / element : 5

num1 <- c(1,3,5,6)
num2 <- c(77,35,14)
num3 <- c(num1,num2)#data : Vector + vector = vector / type : numeric / element : num = num3

c(1, "Lee", TRUE)  # 다 CHAR로 바뀜
c(1, TRUE)          # VECTOR는 두개 이상의 타입을 가질 수 없다.

 

2)  :

 - 순서값(sequence)을 생성하는 연산자

 - numeric vector만 가능함

 - start : end

 - 1씩 증가되는 숫자 또는 1씩 감소되는 숫자로 이루어진 vector =  좌변에서 우변으로 1씩 증감하는 순서값을 생성

 - start < end : 1씩 증가

 - start > end : 1씩 감소

 - start = end : start or end

 - start 에 있는 숫자부터 시작해서 end에 있는 숫자를 넘지 않을 때까지 1씩 증가 또는 감소

 

1:100  : 1부터 1씩 증가해서 100까지

100:1

 

3) seq( from = , to = , by = )

 - numeric vector만 만들 수 있음(숫자만 가능)
 - seq : sequence 의 약자

 - 순서값을 생성하는 변수

 - : 와의 차이점은 공차를 지정할 수 있음

 - from : start

 - to : end

 - by : by에 있는 숫자만큼 증가 / 감소

 

seq(from = 1, to = 5, by = 1)

seq(from = 1, to = 5, by = 0.01)

 

 - argument(from, to, by 적어주는거)를 필수적으로 적을 필요는 없지만

   누구나 봤을 때 직관적으로 알아낼 수 있도록 쓰는것이 좋음

 - argument의 순서 중요하지 않음. but, argument가 없을때 순서 중요함

 

4) rep(vector, times = , each =)

 - rep : replicate의 약자

 - 주어진 vector를 복사하는 기능, 값을 반복하는 함수

 - numeric / character/ logical vector를 만들 수 있음 

 

rep(1, times = 10)

rep(1, each = 10)

 

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

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

 

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

     => 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 

 

5) sequence(number)

 - numeric vector만 만들 수 있음

 - 1 ~ number 사이의 점수

 - number는 0보다 큰 값이어야 함

 

sequence(5)

sequence(3.7)

sequence(1)

 

 

1.2 vector의 속성 (attributes)

(1) 데이터의 개수 : length(vector)

 

height <- c(170, 168, 175, 164, 169)
length(height)

 

(2) element의 이름 : names(vector)
names(height)
names(height) <- c("김세훈", "마한올", "김한얼", "양윤정", "원종현")
height
names(height) <- NULL
height
names(height)

 

(3) 데이터의 유형 : mode(vector),
 - is.xxxx(vector)
 - mode(height)

 

1.3 vector의 index

 - vector의 위치  : 첫번째 위치는 1로 인식함

 

1.4 vector의 slicing

 - vector중에서 일부를 잘라서 가져오는 것

 - vector[index] - 여기 안에 ','가 오면 안됨

                       만약 , 가 온다면 data[행, 열]이 되면서 2차원구조가 됨

                       data[행, 열, 높] : 3차원 구조

 

height height <- c(170, 168, 175, 164, 169)
height[1] #1차원구조 = vector
height[2]

 

1.5 vector의 연산 ----

 

v1 <- 1:3
v2 <- 4:6
v3 <- v1 + v2
v3

v4 <- 1:6
v1 + v4

v5 <- 1:7
v1 + v5

 

'R' 카테고리의 다른 글

R - Data_factor  (0) 2019.03.31
R - Type of Data  (0) 2019.03.31
R - Operator  (0) 2019.03.31