본문 바로가기
공부/R Programming

R 기초; 벡터 연산

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

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

댓글