R 기초; 벡터 연산
1 + 2
[1] 3 # 결과
"+"(1, 2)
[1] 3 # 결과
c(1, 2, 3) + c(4, 5, 6)
[1] 5 7 9
c(1, 2, 3) * c(4, 5, 6)
[1] 4 10 18
c(10, 20, 30) / c(2, 4, 6)
[1] 5 5 5
c(10, 20, 30) %% c(3, 5, 7) # %% 나머지 연산
[1] 1 0 2
c(10, 20, 30) %/% c(3, 5, 7) # %/% 몫 연산
[1] 3 4 4
c(1, 2, 3) + c(4, 5, 6, 7, 8) # 배열의 길이가 다를 경우, 길이가 짧은 벡터가 재사용 된다.
[1] 5 7 9 8 10
c(1, 2, 3) + c(4, 5, 6, 7, 8, 9) # 배열의 길이가 다를 경우, 길이가 짧은 벡터가 재사용 된다.
[1] 5 7 9 8 10 12
c(1, 2, 3, 1, 2, 3) + c(4, 5, 6, 7, 8, 9) 와 동일하다.
c(1, 3, 5) + 10 # 벡터와 스칼라 연산의 경우, 스칼라가 재사용된다.
[1] 11 13 15
# 논리 연산자
== (equal to), != (not equal to), < (less than), > (greater than), <= (less than or equal to), >= (greater than or equal to), isTRUE(), x&y, x | y
# Logic Practice
v <- pi
w <- 10/3
v == w
[1] FALSE
v != w
[1] TRUE
!(v > w)
[1] TRUE
(v == w) | (v < w)
[1] TRUE
isTRUE(v==w)
[1] FALSE
y <- c(0, 25, 50, 75, 100)
z <- c(50, 50, 50, 50, 50)
y == z
[1] FALSE FALSE TRUE FALSE FALSE
y != z
[1] TRUE TRUE FALSE TRUE TRUE
y > z
[1] FALSE FALSE FALSE TRUE TRUE
y == 50
[1] FALSE FALSE TRUE FALSE FALSE
as.numeric(TRUE) # TRUE = 1 , FASLE = 0
[1] 1
as.numeric(FALSE)
[1] 0
TRUE * TRUE
[1] 1
TRUE * FALSE
[1] 0
TRUE + TRUE
[1] 2
y <- c(0, 25, 50, 75, 100)
y > 50
[1] FALSE FALSE FALSE TRUE TRUE
sum(y> 50) # y배열에서 50보다 큰 원소의 개수
[1] 2
any(-3:3 > 0) # 원소 중 하나라도 TRUE이면 TRUE
[1] TRUE
all(-3:3 > 0) # 모든 원소가 조건에 만족할 때만 TRUE
[1] FALSE
sqrt(2) ^ 2 == 2
[1] FALSE # 왜?
identical(sqrt(2)^2, 2) # R에서는 floating point number로 저장해서 반올림으로 오차가 발생한다.
[1] FALSE
all.equal(sqrt(2)^2 ,2) # all.equal은 매우 작은 오차를 무시한다.
[1] TRUE
all.equal(sqrt(2)^2 ,3)
[1] "Mean relative difference: 0.5"
is.TRUE(all.equal(sqrt(2)^2, 3))
[1] FALSE
# PASTE
fruit <- c("Apple", "Banana", Strawberry")
food <- c("Pie", "Juice", "Cake")
paste(fruit, food)
[1] "Apple Pie" "Banana Juice" "Strawberry Cake"
paste(fruit, "Juice")
[1] "Apple Juice" "Banana Juice" "Strawberry Juice"
'공부 > R Programming' 카테고리의 다른 글
R 기초; 벡터 인덱싱 (0) | 2021.01.03 |
---|---|
R 기초; 행렬 연산 (0) | 2021.01.02 |
R 기초; 벡터 함수 (0) | 2021.01.02 |
R 기초; 벡터 생성 (0) | 2021.01.01 |
R 기초; 데이터 구조 (0) | 2021.01.01 |
댓글