【问题标题】:For loop issue with a negative values in R对于R中的负值循环问题
【发布时间】:2017-09-24 07:03:44
【问题描述】:

我是 R 新手,我有一个 R 代码,它使用 for 循环来计算 y = m*i + b。起始值为负数,我想在计算中使用它并将其存储在Trend.Line 的第一次出现中,依此类推。

我没有得到预期的结果。如果我的开始是一个正数,无论它是什么数字,我仍然想将它存储在第一次出现。

例如,如果start= -5,我想将这个计算值存储在Trend.Line[1] 中的Y -4 计算值存储到Trend.Line[2]。现在如果start = 6,我想将计算值存储在Trend.Line[1],将7计算值存储到Trend.Line[2]

感谢您对此进行调查。

这是我的代码:

  Trend.Line <- numeric(0)

  start <- -5 
  end <- 12 

  m <- 345.72
  b <- 54454 

  for(i in start:end){
     y <- m*(i) + b 
    Trend.Line[i] <- y
  }  

  Trend.Line

【问题讨论】:

  • [] 中的负值用于省略。您可以使用-5:12 重现此特定示例或使用Trend.Line &lt;- -5:12 分配它。
  • 很抱歉我编辑了我的 R 代码。感谢您对此进行调查。
  • 嗨 d.b 感谢您抽出宝贵时间调查此事。当我运行您的代码时,它没有给我结果。如果我从 -5 开始,Trend.Line 的第一次出现应该是 52725.4,而你的是 54799.72,我相信它使用正数 1。y = 345.72 * -5 + 54454。它应该给我 52775.4。我想知道 seq_along 是否忽略了负值。

标签: r loops for-loop


【解决方案1】:

干吗?

Trend.Line <- start:end
m * Trend.Line + b

它返回一个数字向量,其中包含您想要的索引处的所有内容。它还利用了 R 中函数的向量化。因此,乘法和加法对向量 Trend.Line 的所有元素都有效。

【讨论】:

  • 很抱歉我更新了我的 R 代码。请参阅代码以获取解决方案。感谢您对此进行调查
  • 嗨麦克希思。感谢您花时间调查此事。这是我所期待的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 2011-06-10
  • 2011-07-15
相关资源
最近更新 更多