使用“For”和“If”循环检查矩阵中的最大值

时间:2016-01-27 06:04:43

标签: r loops if-statement for-loop

我在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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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