首页 > 解决方案 > 如何在 R 中使用重复将不同的数学函数应用于相同的初始变量?从中创建一个新向量?

问题描述

我不了解“重复”如何工作的一些机制,并且急需帮助。

给定两个初始变量:

i <- 0
my.sum <- i

如何成功创建将 i 增加 1 的向量,计算 i^2,将其添加到“my.sum”并为每次迭代打印一个报告“i”和“my.sum”的向量?我想在“my.sum”(i 的平方和)超过 250 之前终止这个循环。

这是我最近的尝试:

i <- 0
my.sum <- i

  repeat { 
    sums <- c()
    my.sum.1 <- i+1
    my.sum.2 <- i^2
    my.sum <- c((my.sum + my.sum.1),(my.sum + my.sum.2))
    if (my.sum > 249){
      break
    }
     print(my.sum)
  }

返回警告:

条件的长度 > 1 并且只使用第一个元素

和错误:

错误:向量内存耗尽(达到限制?)

我过去遇到过第一个错误,很可能是因为我不确定 for 循环和“重复”中的向量究竟是如何工作的。这是我错误的根源还是更深?

我确实喜欢自己解决问题,但我经常发现自己被基本概念难住了。我可以做些什么来使这段代码正常工作,将来我怎样才能做得更好?

非常感谢任何帮助,谢谢!

标签: rif-statementvectorrepeatbreak

解决方案


我会以更简单的方式使用while

i <- 0 
my.sum <- i

while (my.sum <= 250) {

  i <- i + 1
  my.sum <- my.sum + i ^ 2

  cat("The value of i is:", i, "and the squared sum is", my.sum, "\n")  
}

这与您正在寻找的相似吗?


推荐阅读