我在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
谢谢!
答案 0 :(得分:1)
for
循环是错误的方法,但如果你坚持:
Max <- -Inf
for (i in seq_along(v)){
if (v[i] > Max)
Max <- v[i]
}