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 |
댓글