在每次迭代中使用rbind之后,为什么我的for循环仅返回1行?

时间:2019-04-26 15:52:47

标签: r

我正在尝试为以下方程式提供一组解决方案: y = x ^ 2-t [i],对于参数t在[2,3]中变化的所有值。

我试图实现一个for循环,该循环在每次迭代中都会计算计算结果,并将结果重新绑定到一个数据帧中,以供以后使用。

t<-seq(from = 2, to = 3, by = 0.005)
x<-seq(from = 0, to = 30, by = 0.05)

d<-data.frame()
for (i in length(t)) {
  y<- x^2 - t[i]
  d<-rbind(d,y)
  }

d

我希望for循环的输出为201行和601列的数据帧,但实际输出仅为601列的1 1行。

1 个答案:

答案 0 :(得分:2)

如果将for循环更改为通过1:length(t)进行迭代,它将创建201行。

t <- seq(from = 2, to = 3, by = 0.005)
x <- seq(from = 0, to = 30, by = 0.05)

d <- data.frame()

for (i in 1:length(t)) {
  y <- x^2 - t[i]
  d <- rbind(d,y)
}

str(d)