2016-11-09 1 views
2

다른 함수에 함수 그룹 (목록 또는 벡터)을 보내고 싶습니다. 내가 보낸 개별 기능의 이름을 얻고 싶습니다. 나는 또한 그 기능을 사용하고 싶다 그러나 그것은 잘 작동하는 것처럼 보인다. 예를 들어R에서 함수의 벡터를 다른 함수로 전달하고 전달 된 각 함수를 이름으로 참조하십시오.

: 나는 동일하게 FUNC1 싶습니다 무엇

funcA <- function(x,y){z=x+y} 
funcB <- function(x,y){z=x-y} 

myfunc <- function(x,y,funclist=c(funcA, funcB)){ 
func1 <- deparse(substitute(funclist[1])) 
} 

는 "funcA"하지만이 예제에서 같음 "funclist [1]". 나는 하나의 함수 이름 목록을 교체하는 경우

myfunc <- function(x,y,funclist=funcA){ 
func1 <- deparse(substitute(funclist)) 
} 

같은

는 내가 FUNC1는 "funcA"를 동일 얻는다. 내 단점은 deparse (substitute())의 이해에 있다고 생각하지만, 제가 바라 보는 또 다른 방법이 있는지 궁금합니다.

+0

도전 과제는 'funclist' 벡터를 요소 평가없이 부분 집합하는 것입니다. 어떤 cajoling와 방법이있을 수 있습니다. –

답변

2
funcA <- function(x,y){z=x+y} 
funcB <- function(x,y){z=x-y} 

myfunc <- function(x,y,funclist=c(funcA, funcB)){ 
    func.vec <- as.character(substitute(funclist)) 
    func1 <- func.vec[2] 
    print(func1) 
    func2 <- func.vec[3] 
    print(func2) 
} 

myfunc(1,2, c(funcA,funcB)) 
[1] "funcA" 
[1] "funcB" 
+0

이것은 함수를 평가하지만''funcA ''인 원하는 출력을 제공하지 않습니다. 그리고 그것이 가능하지 않다면, 그것이 왜 아닌지에 대한 지침. –

+0

@PierreLafortune이 원하는 내용입니까? 이전에 원하는 출력을 먼저 확인하지 못해서 정말 미안합니다. –

+0

OP에서 기능 내에서 'funclist [1]'을 부분 집합하는 데 문제가 있는지 묻습니다. –

관련 문제