본문 바로가기
공부/R Programming

R 기초; 벡터 함수

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

R 기초; 벡터 함수

 

절대값 함수
abs(-3:3)
[1] 3 2 1 0 1 2 3

log(1:5)
[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379

log(1:5, base=exp(1))
[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379

log2(1:5)
[1] 0.000000 1.000000 1.584963 2.000000 2.321928

log10(1:5)
[1] 0.0000000 0.3010300 0.4771213 0.6020600 0.6989700

exp(1:5)
[1]   2.718282   7.389056  20.085537  54.598150 148.413159

y <- exp(1:5)
y
[1]   2.718282   7.389056  20.085537  54.598150 148.413159

log(y)
[1] 1 2 3 4 5

factorial(1:5)
[1] 1 2 6 24 120

choose(5, 2)
[1] 10

sqrt(1:5)
[1] 1.000000 1.414214 1.732051 2.000000 2.236068

 

options("digits")             # 현재 R에서 설정된 유효자리수를 확인하기
pi                               # 유효자리 수 7자리로 출력된다
[1] 3.141593

p*100 # 역시 유효자리가 7자리로 출력된다.
[1] 314.1593

signif(456.789, digits=2)                 # 유효자리 두 자리로 출력하기
[1] 460

signif(456.789, digits=3)                 # 유효자리 세 자리로 출력하기
[1] 457

signif(456.789, digits=4) 
[1] 456.8


round(456.789, digits=2)    # 소수점 둘째 자리까지 반올림해서 출력

round(456.789)              # round 함수에 digits을 지정하지 않으면 자동적으로 정수 부분만 출력

round(sqrt(1:5), digits=2)
[1] 1.00 1.41 1.73 2.00 2.24

 

round(456.789, digits=-2) 
[1] 500

round(456.789, digits=-1) 
[1] 460

round(11.5)                # R에서는 반올림 할 때 가장 가까운 짝수로 반올림한다
[1] 12

round(12.5)                # 가장 가까운 짝수가 12이기 때문에, 13이 아니고 12로 반내림하게 된다
[1] 12

round(13.5)
[1] 14

round(-3.5)
[1] -4

round(-4.5)
[1] -4

floor(456.78)
[1] 456

floor(-456.78)
[1] -457

ceiling(456.78)
[1] 457

ceiling(-456.78)
[1] -456

trunc(456.78)
[1] 456

trunc(-456.78)
[1] -456

3/0
[1] Inf

Inf * Inf
[1] Inf

is.infinite(10^(305:310))
[1] FALSE FALSE FALSE FALSE TRUE TRUE

Inf/Inf
[1] NaN                         # Not a Number

Inf * 0
[1] NaN

NaN + 3
[1] NaN

is.nan(NaN + 3)
[1] TRUE

# NA                           # Not Available
k <- NA
k
[1] NA

k + 5
[1] NA

sqrt(k)
[1] NA

k == NA                    # NA는 논리연산에 TRUE or FALSE로 답하지 않는다
[1] NA

# 따라서 NA를 확인하기 위해서는 is.na() 함수를 적용한다
is.na(k)
[1] TRUE

is.na(k + 5)
[1] TRUE

is.na(NaN)
[1] TRUE

z <- 1:5
z
[1] 1 2 3 4 5

sum(z)
[1] 15

prod(z)
[1] 120

max(z)
[1] 5

min(z)
[1] 1

mean(z) #평균
[1] 3

median(z) #중간값
[1] 3

range(z) # 범위
[1] 1 5

var(z) #분산
[1] 2.5

sd(z) # 표준편차
[1] 1.581139

w <- c(1, 2, 3, 4, 5, NA)
w
[1] 1 2 3 4 5 NA

 

 

sum(w)
[1] NA

sum(w, na.rm=TRUE) # NA remove가 TRUE이기 때문에 NA를 삭제한 상태로 sum을 계산한다
[1] 15

sum(na.omit(w)) # NA omit을 한 것의 합을 계산한다
[1] 15

na.omit(w) # 
[1] 1 2 3 4 5
attr(,"na.action")
[1] 6
attr(,"class")
[1] "omit"


v <- c(NA, NA, NA, NA, NA)
v
[1] NA NA NA NA NA

sum(v, na.rm=TRUE)
[1] 0

prod(v, na.rm=TRUE)
[1] 1

max(v, na.rm=TRUE)
[1] -Inf

min(v, na.rm=TRUE)
[1] Inf

# <누적 연산>
traffic.death <- c(842, 729, 786, 751, 844, 851, 702)

cumsum(traffic.death) # 누적 합 계산
[1] 842 1571 2357 3108 3952 4803 5505

cumprod(traffic.death)
[1] 8.420000e+02 6.138180e+05 4.824609e+08 3.623282e+11 3.058050e+14 2.602400e+17 1.826885e+20

cummax(trafficdeath)
[1] 8.420000e+02 6.138180e+05 4.824609e+08 3.623282e+11 3.058050e+14 2.602400e+17 1.826885e+20

cummax(traffic.death)
[1] 842 842 842 842 844 851 851

cummin(traffic.death)
[1] 842 729 729 729 729 729 702

cumsum(c(3, 5, 1, NA, 2))
[1] 3 8 9 NA NA


diff(traffic.death) # (n+1) - (n) 
[1] -133 57 -35 93 7 -149

diff(c(3, 5, 1, NA, 2))
[1] 2 -4 NA NA

diff(1:5, lag=2)
[1] 2 2 2 


union()

intersect()

setdiff()


p <- 1:10
q <- 6:15

union(p, q) #합집합
[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

intersect(p, q) # 교집합
[1]  6  7  8  9 10

setdiff(p, q) # 차집합
[1] 1 2 3 4 5

setdiff(q, p)
[1] 11 12 13 14 15

setequal(p, q) # 집합 동일 비교
[1] FALSE

 

is.element(setdiff(p, q), p) # setdiff(p, q)가 p에 포함되어 있는지 확인
[1] TRUE TRUE  TRUE  TRUE  TRUE 

is.element(setdiff(p, q), q)
[1] FALSE  FALSE  FALSE  FALSE  FALSE 

반응형

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

R 기초; 벡터 인덱싱  (0) 2021.01.03
R 기초; 행렬 연산  (0) 2021.01.02
R 기초; 벡터 연산  (0) 2021.01.01
R 기초; 벡터 생성  (0) 2021.01.01
R 기초; 데이터 구조  (0) 2021.01.01

댓글