【问题标题】:Checking For Largest Value in a Matrix Using "For" and "If" Loop使用“For”和“If”循环检查矩阵中的最大值
【发布时间】:2016-01-27 06:04:43
【问题描述】:

我在 R 中的一段简单代码中遇到了 for 循环问题...

所以我有一个包含一堆降水数据的数据框,其中有一堆“站”(1-75)在行和列中是每月的值。我为 Jan 列创建了一个降水值向量(我称之为“Jan”),所以它看起来像这样(为了这篇文章的目的,我输入了随机值):

    V1
1   10
2   5
3   15
...
75  5

我想使用带有“if”的“for”循环来返回这个向量的最大值。但是,我下面的代码似乎只是遍历向量中的每个值,并且总是只返回整个事物的最后一个值(即在第 75 行中,将返回“5”)。我知道这是我的“if”循环中的某些东西,它并没有让我实际输入向量的值,而是测试“行号”值。有什么建议吗??

highest_ppt<- function(v) {
  i=0
 output<-v[i] #c(0,length(v))
  for (i in 2:length(v)){
    if (v[i] > (v[i-1])){
      output <- (v[i])
    }
  }
  return(output)
}

max_ppt <- highest_ppt(Jan)
max_ppt

谢谢!

【问题讨论】:

  • 我不明白你想要达到什么目的。 which.max 功能还不够吗?

标签: r loops if-statement for-loop


【解决方案1】:

for 循环在这里是错误的方法,但如果你坚持:

Max <- -Inf
for (i in seq_along(v)){
  if (v[i] > Max)
    Max <- v[i]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 2015-08-14
    • 1970-01-01
    • 2021-09-29
    • 2017-07-24
    • 1970-01-01
    • 2019-09-18
    • 2014-06-17
    相关资源
    最近更新 更多