R에서 선택적 인수를 사용하여 함수를 작성하는 "올바른"방법에 관심이 있습니다. 시간이 지남에 따라 여기에서 다른 경로를 취하는 몇 가지 코드가 우연히 발견되어 적절한 (공식) 위치를 찾을 수 없었습니다. 이 주제에 대해.
지금까지 다음과 같은 선택적 인수를 작성했습니다.
fooBar <- function(x,y=NULL){
if(!is.null(y)) x <- x+y
return(x)
}
fooBar(3) # 3
fooBar(3,1.5) # 4.5
이 함수 x
는 제공된 경우에만 인수를 반환합니다 . NULL
두 번째 인수에 기본값을 사용하고 해당 인수가 아닌 NULL
경우 함수는 두 숫자를 더합니다.
또는 다음과 같이 함수를 작성할 수 있습니다 (두 번째 인수는 이름으로 지정해야하지만 대신 unlist(z)
또는 z <- sum(...)
대신 정의 할 수 있음 ).
fooBar <- function(x,...){
z <- list(...)
if(!is.null(z$y)) x <- x+z$y
return(x)
}
fooBar(3) # 3
fooBar(3,y=1.5) # 4.5
개인적으로 나는 첫 번째 버전을 선호합니다. 그러나 나는 둘 다 좋은 것과 나쁜 것을 볼 수 있습니다. 첫 번째 버전은 오류가 발생하기 쉽지 않지만 두 번째 버전은 임의의 수의 옵션을 통합하는 데 사용될 수 있습니다.
R에서 선택적 인수를 지정하는 "올바른"방법이 있습니까? 지금까지 첫 번째 접근 방식을 결정했지만 둘 다 때때로 "해키"를 느낄 수 있습니다.
xy.coords
일반적으로 사용되는 방법을 보려면 소스 코드 를 확인하십시오.