78. match.arg 함수
match.arg 함수는 첫번째 문자형 벡터의 인수(argument)가 두번째 벡터의 인수에 있을 때, 그 값을 반환해줍니다. 문자형벡터만 가능합니다. 아래와 같은 기본형을 갖습니다.
match.arg(arg, choices, several.ok = FALSE)
> match.arg('a',c('a','b','c'))
[1] "a"
앞글자가 같아도 반환해줍니다.
> match.arg('a',c('apple','banana','chicken'))
[1] "apple"
> match.arg('ap',c('apple','banana','chicken'))
[1] "apple"
> match.arg('app',c('apple','banana','chicken'))
[1] "apple"
단, 앞에서 부터 같아야 합니다.
> match.arg('pple',c('apple','banana','chicken'))
Error in match.arg("pple", c("apple", "banana", "chicken")) :
'arg'은 반드시 “apple”, “banana”, “chicken” 중 하나이어야 합니다
첫번째 자리에 원소가 여러개인 문자형 벡터가 올 수도 있습니다. 아래와 같이 옵션을 설정해주면 됩니다.
> match.arg(c('a','b'),c('apple','banana','chicken'), several.ok = TRUE)
[1] "apple" "banana"
match.arg 는 우리가 함수를 정의할 때 많이 사용됩니다. 옵션을 설정할 때 편리하기 때문입니다. 아래와 같은 함수를 정의했습니다. match.arg 에 choice를 설정하지 않아도, 함수와 함께 사용되면 아래 예시 function 안의 type이 choices로 적용됩니다.
hsmfun = function(x, type = c("mean", "var", "square")) {
type = match.arg(type)
switch(type,
mean = mean(x),
var = var(x),
square = x*x
)
}
이 함수를 사용해보면 왜 match.arg가 편리한지 알 수 있을 것입니다.
> hsmfun(c(1,2,3),type="m")
[1] 2
> hsmfun(c(1,2,3),type="me")
[1] 2
> hsmfun(c(1,2,3),type="ar")
Error in match.arg(type) :
'arg' should be one of “mean”, “var”, “squar
영상이 더 편하신 분
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R 강의] 80. R 스튜디오 간단한 사용법 (0) | 2020.04.02 |
---|---|
[R 강의] 79. R 스튜디오 설치 (0) | 2020.04.01 |
[R 강의] 77. match 함수 (0) | 2020.04.01 |
[R 강의] 76. table 함수는 분할표를 만든다 (0) | 2020.04.01 |
[R 강의] 75. R에서 제공하는 모든 색상 살펴보기(colors) (0) | 2020.04.01 |
댓글