[問題] 找局部極小值

作者: guitarbird (bird)   2018-02-22 11:23:25
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
使用迴圈寫一個簡單的局部極小值判斷程式,但出現error
[程式範例]:
k為一個n=2685的value,型態為num
n<-30
b<-rep(k[1]+1,n)
e<-rep(k[length(k)]+1,n)
k<-c(b,k,e)
p<-0
for (i in (n+1):(length(k)+n)) {
if (min(k[i-n:i+n])==k[i]) {p1<-1}
else {p1<-0}
p<-c(p,p1)
}
到for loop前都沒問題,之後會出現error
Error in if (min(k[i - n:i + n]) == k[i]) { :
missing value where TRUE/FALSE needed
請問各位高手該如何修改,謝謝!
[環境敘述]:
R x64 3.4.3
win10
作者: x88776544pc (龍飛五丈原)   2018-02-22 11:56:00
檢查 k 裡面是否有 NA
作者: didihung (小口木)   2018-02-22 12:03:00
你的i要跑到(length(k)+n)但是你的k並沒有這麼長
作者: F0011010101 (法客)   2018-02-22 13:49:00
是for (i in (n+1):(length(k)-n))吧?
作者: guitarbird (bird)   2018-02-22 15:09:00
對! 蠢了,謝謝大大們

Links booklink

Contact Us: admin [ a t ] ucptt.com