2017-09-24 8 views
1

R 패키지 mice 다음 예제와 함께 제공수식이 변수로 실행되는 마우스 : 나중의 평가 대신 즉시 평가? <pre><code>library("mice") imp <- mice(nhanes) fit <- with(data=imp,exp=lm(bmi~hyp+chl)) </code></pre> <p></p> 내가 좋아하는 <code>with()</code>의 유연한 호출합니다 :

model_formula <- bmi~hyp+chl 
fit <- with(data=imp,exp=lm(model_formula)) 

을하지만이 Error in eval(predvars, data, env) : object 'bmi' not found가 발생합니다. 나는 비슷한 문제를 찾았다. 내가 찾은 옷장 문제는 Help understand the error in a function I defined in R입니다. 내 생각에, 을 작성하는 것은 즉각적인 평가가되지만, exp = lm(bmi~hyp+chl)을 쓰면 즉시 평가되지 않고 대신 with.mice() 함수에서 발생합니다. 그렇다면 어떻게 즉시 평가를 방지 할 수 있습니까?

+1

나는 이것이 인해 오히려 평가의 시간보다, 가능성 범위 지정 문제라고 생각합니다 with.mids가 어떻게 쓰여지는지. 대안으로, 수식을 문자열'model_formula <- "bmi ~ hyp + chl"'로 정의한 다음 with.mids 범위'with (imp, lm (formula (model_formula))) 내에서 수식을 정의 할 수 있습니다. ' – user20650

답변

0

@ user20650의 의견은 솔루션의 단서였습니다. format 의해 달성 될 것입니다 문자로 먼저 공식을 변경하는 데 필요한 한 다음 다시 공식 구성되어 있습니다

model_formula <- bmi~hyp+chl 
fit <- with(data=imp,exp=lm(formula(format(model_formula)))) 
+0

당신은 당신의 워크 플로우에 맞는 것을 알고 있지만, 모델을 수식으로 정의하고 문자로 변환 한 다음 수식으로 돌아가는 것이 차선책으로 보입니다. ps some answers [here] (https://stackoverflow.com/questions/14671172/how-to-convert-r-formula-to-text)이 방법으로'format'을 사용하여 문제를 보여줍니다. – user20650