[英]how to pass a variable to lm within a function in R
这是一个(非)工作的例子,说明我想做什么。 限制是所有这一切都必须在一个函数内发生,并且K
不应该附加到x
。 这样做的正确方法是什么? 问题是K
与此处的正确环境无关。
编辑:基于以下评论。 提供的答案有效,但我们仍然不明白为什么
f = function() { K=5; x = data.frame(a=1:10, b=(1:10)^2);
regstr = "b ~ a:I(a>K)";
lm(regstr, data=x);
}
f()
Error in unique(c("AsIs", oldClass(x))) (from #3) : object 'K' not found
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
f = function() { K=5; x = data.frame(a=1:10, b=(1:10)^2);
regstr = "b ~ a:I(a>K)";
lm(as.formula(regstr), data=x);
}
你错过了
as.formula
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.