[r] 함수에서`…`(3 점 또는 점 점점) 사용 [중복]

...함수 사용에 대한 문서는 어디에서 찾을 수 있습니까 ? 예가 유용 할 것입니다.



답변

설명하는 데 사용되는 단어 ...는 “줄임표”입니다. 이를 알면 구성에 대한 정보를 더 쉽게 검색 할 수 있습니다. 예를 들어 Google의 첫 번째 히트는이 사이트의 또 다른 질문입니다. 자신의 함수를 작성할 때 R의 줄임표 기능을 사용하는 방법은 무엇입니까?


답변

시작하기위한 간단한 예입니다.

f <- function(x, ...)
{
  dots <- list(...)                   #1
  if(length(dots) == 0) return(NULL)
  cat("The arguments in ... are\n")
  print(dots)
  f(...)                              #2
}

f(1,2,3,"a", list("monkey"))

함수 f는 첫 번째 입력 인수를 제외한 모든 인수를 줄임표 변수에 저장합니다. 콘텐츠에 액세스하려면 목록 (1)으로 변환하는 것이 가장 쉽습니다. 그러나 주된 용도는 변환이 필요없는 하위 함수에 인수를 전달하는 것입니다 (2).


답변

“R 언어 정의”섹션 2.1.9 Dot-dot-dot로 이동해야 합니다. R 설치와 함께 제공됩니다. help.start()대화식 세션에서 실행 하여 HTML 도움말을 표시하고 R 언어 정의 링크를 클릭하십시오. 메인 사이트에서도 PDF 또는 HTML 버전을 사용할 수 있습니다 .

어쨌든, ...함수의 지정되지 않은 형식 인수를 일치시키는 데 사용됩니다.

args(sapply)
function (X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
NULL

sapply(mtcars, mean, trim = .5)
    mpg     cyl    disp      hp    drat      wt    qsec      vs      am    gear
 19.200   6.000 196.300 123.000   3.695   3.325  17.710   0.000   0.000   4.000
   carb
  2.000

보시다시피 함수 trim = .5의 공식 인수로 지정되지 않았지만 전달 했습니다 sapply.

(이 예제는 사소한 것이므로 sapply(mtcars, median)동일한 결과를 얻기 위해 사용할 수 있습니다.)


답변