여기 내 R 코드가 있습니다. 기능은 다음과 같이 정의됩니다.
f <- function(x, T) {
10 * sin(0.3 * x) * sin(1.3 * x ^ 2) + 0.001 * x ^ 3 + 0.2 * x + 80
}
g <- function(x, T, f=f) {
exp(-f(x) / T)
}
test <- function(g=g, T=1) {
g(1, T)
}
실행중인 오류는 다음과 같습니다
> test ()
error of test () :
이미 평가중인 약속 : 재귀적인 기본 인수 참조 또는 이전 문제?
f
에서 의 정의를 대체하면 g
오류가 사라집니다.
오류가 무엇인지 궁금했습니다. 정의의 대체하지 않을 경우 어떻게를 해결하기 위해 f
의에 g
? 감사!
최신 정보:
감사! 두 가지 질문 :
(1) 함수 test
가에 대해 더 인수를 취하면 f
다음과 같은 것을 추가 할 것 test <- function(g.=g, T=1, f..=f){ g.(1,T, f.=f..) }
입니까? 더 많은 재귀가있는 경우 더 추가하는 것이 안전하고 좋은 습관 입니다. ?
(2) f
예를 들어 g <- function(x, T, f=f){ exp(-f*x/T) }
, 및 비 기능적 논거 인 경우 test <- function(g.=g, T=1, f=f){ g.(1,T, f=f.) }
공식적이고 실제적인 비 기능적 논거 모두에 동일한 이름을 사용하는 것이 좋고 안전한 관행입니까 아니면 잠재적 인 문제를 일으킬 수 있습니까?