[英]Formulas in user-defined functions in R
Formulas are a very useful feature of R's statistical and graphical functions.公式是 R 的统计和图形函数的一个非常有用的特性。 Like everyone, I am a user of these functions.
和大家一样,我也是这些功能的用户。 However, I have never written a function that takes a formula object as an argument.
但是,我从未编写过将公式对象作为参数的函数。 I was wondering if someone could help me, by either linking to a readable introduction to this side of R programming, or by giving a self-contained example.
我想知道是否有人可以通过链接到 R 编程这一方面的可读介绍或提供一个独立的示例来帮助我。
You can use model.matrix()
and model.frame()
to evaluate the formula:您可以使用
model.matrix()
和model.frame()
来评估公式:
lm1 <- lm(log(Volume) ~ log(Girth) + log(Height), data=trees)
print(lm1)
form <- log(Volume) ~ log(Girth) + log(Height)
# use model.matrix
mm <- model.matrix(form, trees)
lm2 <- lm.fit(as.matrix(mm), log(trees[,"Volume"]))
print(coefficients(lm2))
# use model.frame, need to add intercept by hand
mf <- model.frame(form, trees)
lm3 <- lm.fit(as.matrix(data.frame("Intercept"=1, mf[,-1])), mf[,1])
print(coefficients(lm3))
which yields这产生
Call: lm(formula = log(Volume) ~ log(Girth) + log(Height), data = trees)
Coefficients: (Intercept) log(Girth) log(Height)
-6.63 1.98 1.12
(Intercept) log(Girth) log(Height)
-6.632 1.983 1.117
Intercept log.Girth. log.Height.
-6.632 1.983 1.117
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.