【发布时间】:2016-10-29 23:03:45
【问题描述】:
我目前有以下代码,其中包含两个函数,用于计算适合两个不同模型的模型。区别在于 lm 函数,其中 + log(v2) 已在模型 2 中添加。
R 代码
dat <- data.frame(clicks = runif(30, 1, 100), v1 = runif(30, 1, 100), v2 = runif(30, 1, 100))
p0 <- 1 # number of parameters in lm()
p1 <- 2 # number of parameters in lm()
n <- nrow(dat) - 1
## Model 1 Loop
model1 <- function(x) {
fit <- lm(log(clicks) ~ log(v1), data = dat, subset = 1:x, model = FALSE)
pred <- predict(fit, newdata = dat[x+1, ])
c(summary(fit)$r.squared)
}
## Model 1 Regression
result_m1 <- t(sapply(p0:n, model1))
data.frame(result_m1)
## Model 2 Loop
model2 <- function(x) {
fit <- lm(log(clicks) ~ log(v1) + log(v2), data = dat, subset = 1:x, model = FALSE)
pred <- predict(fit, newdata = dat[x+1, ])
c(summary(fit)$r.squared)
}
## Model 2 Regression
result_m2 <- t(sapply(p1:n, model2))
data.frame(result_m2)
问题:我能否以某种方式创建一个只为不同模型实现循环的函数,而不是为每个模型重复计算?
我有类似的想法,但无法实现它。http://www.ats.ucla.edu/stat/r/pages/looping_strings.htm
【问题讨论】:
-
我投票结束这个问题,因为它属于codereview.stackexchange.com
标签: r function loops model regression