首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环使用小数

循环使用小数
EN

Stack Overflow用户
提问于 2017-11-23 19:49:56
回答 2查看 2.1K关注 0票数 1

我在想,我是否可以创建一个for循环,以小数表示。我试过这样写:

代码语言:javascript
复制
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个观测结果。

有没有办法绕过这件事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-23 20:02:21

循环中的result[[i]]永远不适用于i的十进制值,因为列表索引必须是整数。

除此之外,如果您改变了对.1增量的思考方式,则可以以.1增量作为循环:

代码语言:javascript
复制
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
} 
票数 2
EN

Stack Overflow用户

发布于 2017-11-23 20:08:22

你这样做的方式在R中并不是最好的,那样做更好(但不是最好的)。不过,它与您的原始代码非常接近。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47462501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档