5.1 R 수학 함수
5.1.2 ceiling()
ceiling(x)
는 x보다 큰 수 중 가장 작은 정수를 반환합니다.
5.1.5 round()
‘round(x, digits = n)’는 x를 소수점 n+1 자리에서 반올림하여 소수점 n번째 자리까지 반환합니다. 만일 digits의 값이 음수이면 10n-1 자리에서 반올림하여 0을 10n 자리까지 만들어 반환합니다. digits 인자의 기본값은 0입니다.
R의 반올림 함수는 국제표준(IEEE 754:2008, ISO/IEC/IEEE 60559:2011)을 따르고 있습니다. 따라서 Excel의 반올림 함수와는 다른 결과 값을 보여줍니다. 예를 들면 Excel에서 =round(2.5, 0)
을 하면 3이 나오지만, R에서는 round(2.5, digits = 0)
을 하게 되면 2가 나오게 됩니다.
이는 위 부동소숫점 실수와 관련된 국제표준에서 반올림의 모드로 제시된 5가지 방법 중 짝수로 반올림(round to nearest, ties to even)를 기본모드로 선택하였기 때문입니다. ’짝수로 반올림’ 모드는 ‘은행원의 반올림’, ’오사오입’이라고도 불리우는 방법으로 반올림으로 인한 오류의 기대값을 0으로 하는 효과가 있습니다. 이 방법은 가장 가까운 표현 가능한 숫자로 반올림하되, 원래 값이 가능한 숫자 두 개의 중간에 걸쳐 있으면 둘 중 가수부의 마지막 자리가 짝수인 값으로 반올림합니다. 예를 들면 52.5는 52, 51.5는 52로 반올림합니다.
5.1.6 signif()
signif(x, digits = n)
는 지정한 유효숫자(significant digits)인 n만큼 자리수를 만들어 반올림 합니다. digits 인자의 기본값은 6입니다. 숫자들의 열을 깔끔하게 맞추고자 할 때 많이 사용합니다.
5.1.8 로그함수
log(x)
는 밑이 e인 x의 자연로그값을 반환합니다.log10(x)
은 밑이 10인 x의 상용로그값을 반환합니다.log2(x)
는 밑이 2인 x의 이진로그값을 반환합니다.log(x, base)
밑이 base인 x의 로그값을 반환합니다.log1p(x)
는 밑이 e인 x+1의 자연로그값을 반환합니다.
5.1.9 exp()
exp(x)
는 상수 e를 x만큼 제곱한 값을 반환합니다.expm1(x)
는 상수 e를 x만큼 제곱한 값에서 1을 뺀 값을 반환합니다.
5.1.10 삼각함수
cos(x)
는 x 라디안 각도의 코사인 값을 반환한다.sin(x)
는 x 라디안 각도의 사인 값을 반환한다.tan(x)
는 x 라디안 각도의 탄젠트 값을 반환한다.acos(x)
,asin(x)
,atan(x)
,atan2(x)
는 역삼각함수입니다.cospi(x)
,sinpi(x)
,tanpi(x)
는pi*x
의 삼각함수입니다. 입력이 pi의 배수일 때 정밀한 계산을 위해 사용합니다.
5.1.11 누적함수
cumsum(x)
x 벡터의 누적 합 벡터를 반환합니다.cumprod(x)
x 벡터의 누적 곱 벡터를 반환합니다.cummax(x)
x 벡터의 누적 최대값 벡터를 반환합니다.cummin(x)
x 벡터의 누적 최소값 벡터를 반환합니다.
5.1.12 sum()
sum(x, na.rm = FALSE)
는 x벡터의 합계를 반환합니다.
5.1.13 diff()
diff(x, lag = 1, differences = 1)
는 두 수의 차이값을 반환합니다. lag 인수는 두 수의 간격을 나타냅니다. lag = 2
이면 두 칸 간격의 두 수 차이입니다. differences 인수는 차분의 차수입니다. differences = 2
이면 차분을 두번한 값을 반환합니다.
5.1.14 prod()
prod(x, na.rm = FALSE)
는 x 벡터의 곱을 반환합니다.
5.1.15 gamma(), factorial()
감마함수(gamma function)는 오일러(Leonhard Euler)가 정수만 적용되는 n!을 실수로 확장하기 위해 제안한 함수입니다.
gamma(x)
는 x-1의 계승값을 반환합니다. 즉 gamma(x)는 factorial(x-1)과 동일합니다.factorial(x)
는 x의 계승값을 반환합니다.
# lfactorial()은 factorial()의 결과값에 자연로그를 적용하는 함수
lfactorial(5)
#> [1] 4.79
log(factorial(5))
#> [1] 4.79
lgamma(5+1)
#> [1] 4.79
gamma()
함수와 연관된 함수는 lgamma()
외에도 psigamma(x, deriv = 0)
, digamma(x)
, trigamma(x)
가 있습니다.
5.1.16 beta()
베타함수는 감마함수를 만든 오일러가 만든 함수입니다. 감마보다 먼저 만들어진 함수라서 알파, 베타, 감마의 순서에 따라 베타함수로 이름이 지어졌습니다. 베타함수는 이항계수의 일반화라고 할 수 있습니다.
5.1.17 choose()
choose(n, k)
는 n개에서 순서에 상관없이 k개를 뽑는 경우의 수를 반환합니다.
수식은 \(n!/(n-k)!k!\) 입니다.
5.1.18 복소수 함수
R에서는 복소수 관련 연산이나 함수를 지원합니다.
Re(x)
는 복소수 x의 실수(Real) 부분을 반환합니다.Im(x)
는 복소수 x의 허수(Imaginary) 부분을 반환합니다.Mod(x)
는 복소수 x의 절대값(modulus)을 반환합니다.Arg(x)
는 복소수 x의 편각(argument)을 반환합니다.Conj(x)
는 복소수 x의 공액 복소수(허수부의 부호만 바뀐 복소수)를 반환합니다.
5.1.19 집합 함수
union(x, y)
는 x와 y의 합집합을 반환합니다.intersect(x, y)
는 x와 y의 교집합을 반환합니다.setdiff(x, y)
는 x에 있고 y에는 없는 (x-y)차집합을 반환합니다.setequal(x, y)
는 x와 y가 같은지 비교검사 결과를 반환합니다.is.element(el, set)
는 el에 있는 각 원소들이 set집합에 포함되는지를 검사합니다.x %in% y
와 동일합니다.
set.seed(123)
(x <- c(sort(sample(1:20, 9)), NA))
#> [1] 2 3 5 6 10 11 14 15 19 NA
(y <- c(sort(sample(3:23, 7)), NA))
#> [1] 5 7 10 11 12 16 22 NA
union(x, y) # 합집합
#> [1] 2 3 5 6 10 11 14 15 19 NA 7 12 16 22
intersect(x, y) # 교집합
#> [1] 5 10 11 NA
setdiff(x, y) # 차집합(x-y)
#> [1] 2 3 6 14 15 19
setdiff(y, x) # 차집합(y-x)
#> [1] 7 12 16 22
setequal(x, y) # 비교
#> [1] FALSE
is.element(x, y)
#> [1] FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE
x %in% y # is.element(x, y)와 동일
#> [1] FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE
all(is.element(x, y)) # x가 y에 모두 포함되어 있으면 TRUE
#> [1] FALSE
5.1.20 푸리에 함수
fft(x, inverse = FALSE)
는 x의 고속 푸리에 변환 값을 반환합니다.mvfft(x, inverse = FALSE)
는 행렬 x의 각 열의 고속 푸리에 변환 값을 반환합니다.filter(x, filter)
는 시계열에 선형 필터를 적용합니다.convolve(x, y)
(x <- matrix(c(1, 2, 3, 2, 20, 26, 3, 26, 38), nrow = 3))
#> [,1] [,2] [,3]
#> [1,] 1 2 3
#> [2,] 2 20 26
#> [3,] 3 26 38
fft(x)
#> [,1] [,2] [,3]
#> [1,] 121.0+ 0.0i -51.5+16.5i -51.5-16.5i
#> [2,] -51.5+16.5i 19.0-13.9i 28.0- 0.0i
#> [3,] -51.5-16.5i 28.0+ 0.0i 19.0+13.9i
mvfft(x)
#> [,1] [,2] [,3]
#> [1,] 6.0+0.00i 48+0.0i 67+ 0.0i
#> [2,] -1.5+0.87i -21+5.2i -29+10.4i
#> [3,] -1.5-0.87i -21-5.2i -29-10.4i
5.1.21 수치해석 함수
- polyroot 근구하기
- uniroot
- D 미분
- integrate 적분