본문 바로가기
공부/R Programming

R 기초; 벡터 인덱싱

by 혼밥맨 2021. 1. 3.
반응형

R 기초; 벡터 인덱싱

 

 

# 벡터 만들기
num <- 0:30
prime <- c(2, 3, 5, 7, 11, 13 17, 19)

prime[1]
[1] 2 

prime[2]
[1] 3

prime[3]
[1] 5

prime[1:3]
[1] 2 3 5

prime[4:6]
[1] 7 11 13

prime[c(1, 1, 5, 5)]
[1] 2 2 11 11

prime[c(1, 3, 5, 7)]
[1] 2 5 11 17

prime[c(7, 5, 3, 1)]
[1] 17 11 5 2

indices <- c(1, 3, 5, 7)
prime[indices]
[1] 2 5 11 17


# 첫 번째 원소를 제외하기
prime[-1]
[1] 3 5 7 11 13 17 19

# 첫 번째부터 세 번째까지 제외하기
prime[-1:-3]
[1] 7 11 13 17 19

prime[-(1:3)]
[1] 7 11 13 17 19

length(prime)
[1] 8

prime[1:(length(prime)-1)]
[1] 2 3 5 7 11 13 17

prime[-length(prime)]
[1] 2 3 5 7 11 13 17

# 벡터 원소 수정하기
prime <- c(2, 4, 5, 7, 11, 14, 17, 18)
prime[2] <- 3
prime
[1] 2 3 5 7 11 14 17 18

prime[c(6,8)] <- c(13,19)
prime
[1] 2 3 5 7 11 13 17 19

prime <- c(2, 3, 5, 7, 11, 13, 17, 19)

length(prime)
[1] 8

prime[9] <- 23
prime
[1] 2 3 5 7 11 13 17 19 23

prime[c(10, 11)] <- c(29, 31)
prime
[1] 2 3 5 7 11 13 17 19 23 29 31

prime[15] <- 47
prime
[1] 2 3 5 7 11 13 17 19 23 29 31 NA NA NA 47

 

 

prime <- c(2, 3, 5, 7, 11, 13, 17, 19)
prime < 10
[1] TRUE  TRUE  TRUE  TRUE FALSE  FALSE  FALSE  FALSE 

prime[prime < 10]
[1] 2 3 5 7

prime %% 2 == 0
[1] TRUE FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE 

prime[prime %% 2 == 0]
[1] 2

# 벡터의 인덱스 출력 함수 seq_along
seq_along(prime)
[1] 1 2 3 4 5 6 7 8

seq_along(prime) %% 2 == 0
[1] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE

prime[seq_along(prime) %% 2 == 0]
[1] 3 7 13 19

prime[seq_along(prime) %% 3 == 0]
[1] 5 13


# prime(seq_along(prime) %% 2 == 0]와 동일
prime[c(FALSE, TRUE)]
[1] 3 7 13 19

# prime(seq_along(prime) %% 3 == 0]와 동일
prime[c(FALSE, FALSE, TRUE)]
[1] 5 13




which()
which.max()
which.min()

rainfall <- c(21.6, 23.6, 45.8, 77.0, 102.0, 133.3, 327.9, 348.0, 137.6, 49.3, 53.0, 24.9)

which(rainfall > 100)
[1] 5 6 7 8 9

month.name[which(rainfall > 100)]
[1] "May" "June" "July" "August" "September"

# rainfall이라는 벡터의 최대치의 인덱스를 반환
which.max(rainfall)
[1] 8

# rainfall이라는 벡터의 최소치의 인덱스를 반환
which.min(rainfall)


month.name[which.min(rainfall)]
[1] "January"

rainfall[rainfall > 100]
[1] 102.2 133.3 327.9 348.0 137.6

rainfall[which.max(rainfall)]
[1] 348


# 벡터의 각 원소에 이름 부여하기 using names()
traffic.death <- c(842, 729, 786, 751, 844, 851, 702)
names(traffic.death) <- c("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")

traffic.death
Mon Tue Wed Thu Fri Sat Sun
842 729 786 751 844 851 702

traffic.death["Sat"]
Sat
851

weekend <- c("Fri", "Sat", "Sun")
traffic.death[weekend]

traffic.death > 800
traffic.death[traffic.death > 800]
Mon Fri Sat
842 844 851

names(traffic.death[traffic.death > 800]
[1] "Mon" "Fri" "Sat"

반응형

'공부 > R Programming' 카테고리의 다른 글

R 기초; 행렬 생성  (0) 2021.01.03
R 기초; 팩터  (0) 2021.01.03
R 기초; 행렬 연산  (0) 2021.01.02
R 기초; 벡터 함수  (0) 2021.01.02
R 기초; 벡터 연산  (0) 2021.01.01

댓글