R 언어에서는 함수 ff (jj, kk, mm)가 있다고 가정합니다. 호출 함수 (또는 대화 형 세션에서 호출하는 사람)가 호출시 jj와 kk에 대해 임의의 방식으로 mm을 만들 수 있도록하고 싶습니다.R 기능을 사용하여 평가시 자체 포멀 값을 볼 수 있습니까?
구체성를 들어, 가정 :
ff <- function(jj, kk, mm){
xx <- jj + kk
out<- xx/mm
out
}
그런 다음 실행시에, 나는
mm <- jj*kk
을 설정합니다. 즉 :
ff(2, 3, (jj*kk))
이 수율 :
Error in ff(2, 3, (jj * kk)) : object 'jj' not found
mm
때까지 슬로우되지 않는이 오류는 jj
및 kk
이미 한 후 즉 이 성공적으로 평가, 평가됩니다. 그래서 그들은 서로 다른 범위의 규칙으로 두 번 평가됩니다. 나는 이것이 R 표준 스코프라는 것을 알고 있습니다. 나는 묻고 있는데, 함수를 쓸 수있는 간단한 방법은 숫자 또는 다른 공식적인 인수의 함수를 제공 할 수 있습니까? mm
이 필요하기 전에 인수가 제공되었거나 평가 될 수 있다면 말입니까?
내가이 작업을 수행해야하는지 묻는 것은 아닙니다. 이 후자의 질문에 대해 의견을 제시하는 사람들에게 나는 솔직하게 예의 바르게 행동 할 것입니다.
jj를 사전 계산할 수 있는지, 사전 채혈 한 번호를 손에 넣을 수 있는지 묻지 않습니다. 나는 이 그럴듯한 대답이지만, 내가 문제를 단순화 한 이유로 작동하지 않는다는 것을 안다. 약자로
는 것처럼 점을 설명하기에 * 왜 이렇게 안 * 'Jj = 99; kk = 101; ff (2,3, (jj * kk))''jj'와'kk'의 값을 무시합니다. 왜냐하면 그것들은 각각 2와 3과 같을 때 함수 안에서 평가되기 때문입니다. 이것은'ff' 문서를 읽지 않은 R 사용자를 놀라게 할 것입니다 ... – Spacedman
나는 잘 모르겠습니다. 함수 f <-function (x) {x^2}가 있고 x <- 3, f (x)이면 9가 될 것으로 기대합니다. 그러나 f (2)를 수행하면 4 잠깐 ... 내가 본 것 같아. 당신은이 기능을 사용하는 누군가를 상상하고 있습니다, 누가 그것을 쓰지 않았습니까? 나는이 프로젝트가 일회성이라는 것을 확신한다. 그래서 나의 경우에는 문제가 발생하지 않는다. 하지만 어떻게 할 수 있는지 봅니다. – andrewH
http://adv-r.had.co.nz/Computing-on-the-language.html 도움이 될 수 있습니다. – hadley