R

R 기초 4 - Vector(1차원 배열)

코딩탕탕 2022. 10. 23. 16:20

 

Vector

# R에서 제공하는 자료구조(객체 타입) -Vector, Matrix, Array, List, DataFrame
# R은 스칼라 타입이 없다. 가장 작은 단위가 1차원 배열인 Vector

# Vector : 1차원 배열

year <- 2022
is.vector(year)

seq(1, 5)
seq(from=1, to=10, by=2) # start, end, step
seq(3, 7)
seq(7, 3)
seq(1, 10, length.out = 4) # 1부터 10까지 4개만 호출
seq(1:10)

rep(1:3, times=3) # 1부터 3까지 1,2,3 * 3번 반복
rep(1:3, each=3)  # 1부터 3까지 1번자료 * 3, 2번자료 * 3 ...반복

v <- c(1, 5, 7, 10:20)
v

v2 <- c(1, 2.5, 3, T, F) # 실수가 들어오면 나머지 값도 실수로 나온다. T는 1 F는 0이다.
# 정수 < 실수 < 문자열 순서대로 강력하다.
v2

age <- c(23, 26, 32)
age
age[1]
age[2]
age[5]  # NA로 나온다. err
names(age) <- c('오공', '팔계', '오정')
age
age[3]
age['오정']
age <- c(age, 44)
age
age[10] <- 55
age     # 10번째로 넣었기 때문에 4번째부터 9번째는 NA가 들어간다.
length(age)
age <- append(age, 66, after=5) # 5번째 후에 66을 추가하겠다는 의미
age
age <- NULL # NULL을 입력
age
length(age) # 값이 몇개들어있는지 호출
rm(age)     # age 삭제
age

Vactor에는 정수 < 실수 < 문자열 순서대로 강력하다.

하나라도 실수나 문자열이 들어가면 모두가 그것으로 바뀐다.

 

v1 <- c(13, -5, 15:20, 12, -2:3)
v1

# 인덱싱 / 슬라이싱
v1[1]
v1[-1]      # 맨 앞에것 빼고 호출
v1[c(2, 5)] # 2, 5번째 것만 호출
v1[-c(2:5)] # 2 ~ 5번째 호출
length(v1)
nrow(v1)    # 행렬에서 가능
NROW(v1)

v2 <- v1 + 10
v2
v2 <- v2 %% 3  # 연산 가능
v2

a <- 1:5
a + 5
a - 5
a * 5
a / 5
sqrt(a)
sqrt(a)^2      # 제곱근

a  
b <- 6:10
b
a + b
a * b
a[6] <- 7      # 6번째에 3 추가
a
union(a, b)    # 합집합 중복을 허용하지 않는다.
c(a, b)
setdiff(a, b)  # 차집합
intersect(a, b)# 교집합

union(a, b) = 합집합 중복을 허용하지 않는다.)

setdiff(a, b) = 차집합

intersect(a, b) = 교집합