programing

적용의 FUN에 몇 가지 인수 전달(및 기타 *적용)

topblog 2023. 7. 7. 18:27
반응형

적용의 FUN에 몇 가지 인수 전달(및 기타 *적용)

사용할 때 함수에 여러 인수를 전달하는 것과 관련하여 질문이 있습니다.lapplyR.

다음 구문과 함께 lapply를 사용할 때lapply(input, myfun);이것은 쉽게 이해할 수 있고, 저는 제 재미를 다음과 같이 정의할 수 있습니다.

myfun <- function(x) {
 # doing something here with x
}

lapply(input, myfun);

및 의 요소input로 통함x에 대한 주장.myfun.

하지만 만약 내가 더 많은 주장을 전달해야 한다면?myfunc예를 들어, 다음과 같이 정의됩니다.

myfun <- function(x, arg1) {
 # doing something here with x and arg1
}

두 가지를 모두 전달하면서 이 기능을 사용하려면 어떻게 해야 합니까?input요소(로서의)x주장) 그리고 다른 주장은?

만약 당신이 도움말 페이지를 찾아본다면, 다음과 같은 주장들 중 하나.lapply신비롭습니까?...도움말 페이지의 인수 섹션을 보면 다음 행이 나타납니다.

...: optional arguments to ‘FUN’.

그래서 당신이 해야 할 일은 당신의 다른 주장을 포함하는 것입니다.lapply다음과 같이 주장합니다.

lapply(input, myfun, arg1=6)

그리고.lapply을 인식하여arg1그것은 무엇을 해야 하는지 아는 논쟁이 아닙니다, 자동으로 그것을 전달할 것입니다.myfun다른 모든 것들apply함수는 동일한 작업을 수행할 수 있습니다.

부록:사용할 수 있습니다....당신이 당신 자신의 기능을 쓸 때도.예를 들어, 호출하는 함수를 쓴다고 가정합니다.plot함수 호출에서 플롯 모수를 변경할 수 있습니다.각 매개 변수를 함수에 인수로 포함할 수 있지만, 이는 성가신 일입니다.대신 사용할 수 있습니다....(함수와 함수 내의 플롯에 대한 호출 모두에 대한 인수로), 함수가 자동으로 전달되지 않는 인수를 가집니다.plot.

Alan이 제안한 것처럼 '매플리' 함수는 함수를 다중 목록 또는 벡터 인수에 적용합니다.

mapply(myfun, arg1, arg2)

페이지 참조: https://stat.ethz.ch/R-manual/R-devel/library/base/html/mapply.html

이 작업은 다음과 같은 방법으로 수행할 수 있습니다.

 myfxn <- function(var1,var2,var3){
      var1*var2*var3

    }

    lapply(1:3,myfxn,var2=2,var3=100)

그러면 다음과 같은 답을 얻을 수 있습니다.

[[1]] [1] 200

[[2]] [1] 400

[[3]] [1] 600

myfun <- function(x, arg1) {
 # doing something here with x and arg1
}

x벡터 또는 목록이고myfunlapply(x, myfun)의 각 요소에 대해 호출됩니다.x따로따로

옵션 1

전체를 사용하려면arg1각각의myfun호출(myfun(x[1], arg1),myfun(x[2], arg1)등), 사용lapply(x, myfun, arg1)(위에서 언급한 바와 같이).

옵션 2

하지만 당신이 전화하고 싶다면,myfun의 각 요소에.arg1의 요소들과 함께 별도로x(myfun(x[1], arg1[1]),myfun(x[2], arg1[2])등), 를 사용할 수 없습니다.lapply대신 사용mapply(myfun, x, arg1)(위에서 언급한 바와 같이) 또는apply:

 apply(cbind(x,arg1), 1, myfun)

또는

 apply(rbind(x,arg1), 2, myfun).

언급URL : https://stackoverflow.com/questions/14427253/passing-several-arguments-to-fun-of-lapply-and-others-apply

반응형