我在想,我是否可以创建一个for循环,以小数表示。我试过这样写:
for (i in seq(2,6,.1))
{
data1 <- data[data$x1 > i,]
model <- lm(y~x1, data = data1)
r = summary(model1)$r.squared
result[[i]] = r
} 但是结果只给出了从2-6中只取整数的5个观测结果。
有没有办法绕过这件事。
发布于 2017-11-23 20:02:21
循环中的result[[i]]永远不适用于i的十进制值,因为列表索引必须是整数。
除此之外,如果您改变了对.1增量的思考方式,则可以以.1增量作为循环:
for (i in seq(20, 60)) {
div <- i / 10
data1 <- data[data$x1 > div,]
model <- lm(y~x1, data = data1)
result[[i]] = summary(model1)$r.squared
} 发布于 2017-11-23 20:08:22
你这样做的方式在R中并不是最好的,那样做更好(但不是最好的)。不过,它与您的原始代码非常接近。
data = data.frame(y = runif(100), x1 = runif(1000, 1,7))
f = function(x, data)
{
data1 <- data[data$x1 > x,]
model <- lm(y ~ x1, data = data1)
r <- summary(model)$r.squared
return(r)
}
results = lapply(seq(2,6,.1), f, data)https://stackoverflow.com/questions/47462501
复制相似问题