안녕하세요.
이번 글에서는 간단한 R의 내장 함수를 다루어보겠습니다.
지난 시간엔 벡터에 대해 다루어보았는데 혹시 기억이 잘 안나시는 분들은 아래 링크로 가시면 됩니다.
[R] 벡터
이번 글에서는 R의 벡터가 뭔지? 그리고 간단한 사칙연산과 간단한 함수에 대해 다루어보겠습니다. 지난 글에서도 간단히 설명했지만 R은 기본적으로 벡터를 기준으로 모든것이 돌아갑니다. [R]
web-story.tistory.com
자 그럼 시작해볼까요?
R에는 다양한 하수들이 내장되어 있습니다.
이들은 매우 강력한 기능들을 제공합니다.
예를 들어 벡터를 더해주는 sum()함수, 벡터의 평균을 구해주는 mean()함수, 정렬해주는 sort()함수 등등 다양한 함수들이 있습니다.
하나씩 살펴보죠.
우선 sum()함수입니다.
sum함수는 매우 단순합니다.
sum(..., na.rm=False)
더해줄 함수를 넣고 na.rm 인자 (기본값 False) 를 세팅해주기만 하면 됩니다.
na.rm은 NaN값을 제거할지 여부를 묻는 인자입니다.
true를 선택할 경우 다음과 같이 NaN값을 제거하고 나머지 값들을 더해주게 됩니다.
다음은 절댓값을 구해주는 abs()함수와, 제곱근을 계산해주는 sqrt()함수입니다.
abs(x)
sqrt(x)
abs와 sqrt함수도 매우 단순해서 다음 함수로 넘어가겠습니다.
다음은 로그 계산을 해주는 log()함수, 자연상수로 계산해주는 exp()함수입니다.
log(x, base=exp(1))
exp(x)
log는 기본적으로 밑의 지수를 자연상수로 가져가기에 다른 지수를 원하신다면 base=2, base=10과 같이 다른 방식으로 계산해주시면 됩니다.
이번에는 팩토리얼 계산을 해주는 factorial()함수입니다.
factorial(x)
네 뭐 이것도 간단하죠?
다음은 삼각함수 계산을 해주는 sin(), cos(), tan()함수들입니다.
sin(x)
cos(x)
tan(x)
이 함수들도 간단히 사용하실수 있습니다.
다음으로는 벡터를 다룰때 사용하는 함수들입니다.
우선 seq(), rep()을 소개하겠습니다.
# x
# a vector (of any mode including a list) or a factor or (for rep only) a POSIXct or POSIXlt or Date object;
# or an S4 object containing such an object.
# 좀 어렵게 써져있는데 벡터라고 생각해주시면 됩니다.
# times
# an integer-valued vector giving the (non-negative) number of times to repeat each element if of length length(x),
# or to repeat the whole vector if of length 1. Negative or NA values are an error.
# A double vector is accepted, other inputs being coerced to an integer or double vector.
# 요거는 단순하게 반복할 횟수구요.
# length.out
# non-negative integer. The desired length of the output vector.
# Other inputs will be coerced to a double vector and the first element taken.
# Ignored if NA or invalid.
# 해당 인자는 rep함수를 돌렸을때 뽑아내는 최대 길이 제한같은겁니다.
# 예를 들어 자동차 운전하시는 분들은 시내에서 50~60km 제한속도가 있죠?
# 똑같은거라고 생각해주시면 되요.
# each
# non-negative integer. Each element of x is repeated each times.
# Other inputs will be coerced to an integer or double vector and the first element taken.
# Treated as 1 if NA or invalid.
# 해당 인자는 벡터를 통으로 돌리냐 각 벡터의 원소들을 반복하냐의 차이입니다.
# rep(1:3, 3)
# [1] 1 2 3 1 2 3 1 2 3
# rep(1:3, each=3)
# [1] 1 1 1 2 2 2 3 3 3
rep(x, times = 1, length.out = NA, each = 1)
# from, to
# the starting and (maximal) end values of the sequence.
# Of length 1 unless just from is supplied as an unnamed argument.
# 요거도 좀 어렵게 써져 있는데, 필수 인자라는 소리구요.
# 띄어쓰기 시작과 끝을 정해주는 인자입니다.
# by
# number: increment of the sequence.
# 숫자 간격을 정해주는 인자입니다.
# 아래와 같이 되겠네요.
# seq(1,5, by=2)
# [1] 1 3 5
# seq(1,5, by=3)
# [1] 1 4
# length.out
# desired length of the sequence. A non-negative number,
# which for seq and seq.int will be rounded up if fractional.
# 요거도 위와 동일하게 벡터의 최대 길이 제한해주는 인자입니다.
# along.with
# take the length from the length of this argument.
# 이건 뭔지 잘 모르겠네요..
# seq_along이라고 함수가 따로 있는데 벡터의 인덱스를 뽑아주는것 같습니다.
# a = c(10,9,8)
# seq_along(a)
# [1] 1 2 3
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),
length.out = NULL, along.with = NULL)
정리
sum(..., na.rm=FALSE)
abs(x)
sqrt(x)
log(x, base=exp(1))
exp(x)
factorial(x)
sin(x)
cos(x)
tan(x)
rep(x, times = 1, length.out = NA, each = 1)
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),
length.out = NULL, along.with = NULL)
오늘은 이렇게 해서 기본적인 내장 함수들과 벡터를 다룰때 사용하는 seq, rep함수에 대해 알아봤는데요.
오늘도 긴글 봐주셔서 감사합니다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/003.gif)
'Dev > R' 카테고리의 다른 글
[R] 데이터 프레임 (0) | 2023.12.24 |
---|---|
[R] 벡터 (0) | 2023.12.20 |
[R] R의 개념 (0) | 2023.12.20 |