티스토리 뷰

  Basic Vector



1. 벡터(Vector)

한 가지 스칼라 데이터 타입의 데이터를 저장한다.(# 하나의 유형으로 구성됨)

# 하나의 열(Column)로 구성됨, 1차원 구조

# 데이터 분석의 기본 단위


  1.1 벡터 생성(To make Vector)

   - (1) 하나의 값(element)으로 이루어진 벡터

> v1 <- 10
> v2 <- 'male'
> v3 <- FALSE


   - (2) 두 개 이상의 값(element)으로 이루어진 벡터

c(element1, element2, ...)

# c : combine of concatenate의 약자, 요소(element) 간에 규칙이 없을 때에 사용함.

# character, vector, numeric vector, logical vector를 만들 수 있음.


> address <- c("서울", "서울", "홍콩")
> income <- c(4500, 0, 0)
> smoke <- c(TRUE, FALSE, FALSE)
> v4 <- c(6, 12, 3)
> v5 <- c(7, 19, 31)
> v6 <- c(v4, v5) # 벡터를 묶으면 벡터


   - (3) ‘start:end’ 형태의 문법

# start부터 end까지 1씩 증가 / 감소되는 숫자들로 이루어진 벡터


> 1:5    # start < end : 1씩 증가
[1] 1 2 3 4 5
> 5:1    # start > end : 1씩 감소
[1] 5 4 3 2 1
> -3.3:1 # 증가
[1] -3.3 -2.3 -1.3 -0.3  0.7
> 1:-3.3 # 감소
[1]  1  0 -1 -2 -3
> 1:1    # start = end
[1] 1


    - (4seq(from = , to = , by = )

# seq : sequence의 약자, 시퀀스를 생성한다.

# numeric vector만 만든다.

# 모든 증가/감소를 표현할 수 있다.


> seq(from = 1, to = 5, by = 1)
[1] 1 2 3 4 5
> seq(from = 5, to = 1, by = -1)
[1] 5 4 3 2 1
> seq(from = 1.5, to = 5.5, by = 2)
[1] 1.5 3.5 5.5
> # 문제 : 5부터 시작하서 1을 넘지 않을 때까지 0.5씩 감소하는 벡터
> seq(from = 5, to = 1, by = -0.5)
[1] 5.0 4.5 4.0 3.5 3.0 2.5 2.0 1.5 1.0


    - (5sequence(정수)

# numeric vector만 만든다.

# seqence(숫자) : 1~숫자 사이의 정수로 된 벡터.

# 숫자는 양수를 넣어야 한다.


> sequence(5)
[1] 1 2 3 4 5
> sequence(6,8)
Error in sequence(6, 8) : 사용되지 않은 인자 (8)
> sequence(-3)
Error in FUN(X[[i]], ...) : 
  인자는 반드시 음이 아닌 정수로 강제형변환할 수 있어야 합니다
> #문제 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6
> sequence(seq(from = 1, to = 6, by = 1))
 [1] 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6
> sequence(1:6)
 [1] 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6



   - (6rep(vector, times = , each = )

# rep : replicate의 약자

# character vector, numeric vector, logical vector에 적용 (c()와 같다)

# 우선순위는 each가 times보다 높다.



> rep(1, times = 10)
 [1] 1 1 1 1 1 1 1 1 1 1
> rep(1, each = 10)
 [1] 1 1 1 1 1 1 1 1 1 1
> 
> rep(1:2, times = 10)
 [1] 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
> rep(1:2, each = 10)
 [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
> 
> #문제 : a, b, c, a, b, c, a, b, c, a, b, c
> 
> rep(c("a", "b", "c"), times = 4)
 [1] "a" "b" "c" "a" "b" "c" "a" "b" "c" "a" "b" "c"
> 
> rep(1:3, times = 3, each = 5) 
 [1] 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 3
> rep(1:3, each = 5, times = 3) #우선순위는 each가 times보다 높기 때문에 두 결과는 같다.
 [1] 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 3
> 
> #문제 : 1이 100개 2는 29개, 3은 5개로 되어 있는 벡터
> c(rep(1, times = 100), rep(2, times = 29), rep(3, times = 5))
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [87] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3
> rep(1:3, times = c(100, 29, 5))
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [87] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3


'R > R 기초' 카테고리의 다른 글

[R기초] 배열(Array)  (0) 2018.03.22
[R기초] 팩터(Factor) - 집단  (0) 2018.03.22
[R기초] 벡터(Vector) - (2) 벡터 속성  (0) 2018.03.22
[R기초] 데이터의 유형(Type of Data)  (0) 2018.03.22
[R기초] 연산자(Operator)  (0) 2018.03.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함