업데이트 : 이전 제목은 Is there any specific way to pass data frame as an argument to a function?
이었지만 여기에 멋진 사람들에 따르면 올바른 질문이 아니 었습니다. 원본 게시물은 아래에 있습니다. R 함수의 내부에서 효과 플롯을 실행하는 방법
내가 somefunc(sleepstudy)
와 기능 다음 실행
somefunc<-function (dataLme)
{
library(effects)
library(lme4)
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), dataLme,
REML = 0, verbose = TRUE)
plot(effect("Days",fm8))
}
나는 오류를 얻었다.
Error in plot(effect("Days", fm8)) :
error in evaluating the argument 'x' in selecting a method for function 'plot': Error in is.data.frame(data) : object 'dataLme' not found
하지만 수동으로
library(effects)
library(lme4)
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), sleepstudy,
REML = 0, verbose = TRUE)
plot(effect("Days",fm8))
를 실행하면 나는 어떤 오류가 발생하지 않았다.
나는 R 값으로 전달이 전체 개체 내용을 함수 인수로 복사한다고 생각했습니다. 그러나 내가 완전히 옳지 않은 것처럼 보입니다. 아무도 무슨 일이 일어나고 있는지 설명 할 수 있습니까?
나는 문제가 의미를 전달하는 R의 주장이라고 생각하지 않습니다 ... 안정적
lme4
또는nlme
에 대한 개발lme4
에 대한eval(cl,envir=environment(formula(mod)))
작품 관련eval(cl)
라인을 변경하지만, 내가 생각하는 문제는 effect'가'이다 모델 피팅 호출을 잘못된 위치에서 '평가'하려고합니다. 또는 적어도 함수 안에서 실행될 때 작동하지 않는 곳. – joran@RicardoSaporta 일. 오타를 유감스럽게 생각합니다. 나는 내 질문에 그것을 고쳤다. 감사! –
@joran 알겠습니다. 어떻게 그렇게 빨리 알아 냈습니까? :-) 오, 잘. 나는 그 때 저자에게 연락 할 시간이다 것을 생각한다. 당신의 도움을 주셔서 감사합니다! –