作者guitarbird (bird)
看板R_Language
標題[問題] 找局部極小值
時間Thu Feb 22 11:23:25 2018
[問題類型]:
程式諮詢(我想用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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.93.97
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1519269807.A.757.html
※ 編輯: guitarbird (118.163.93.97), 02/22/2018 11:25:23
1F:→ x88776544pc: 檢查 k 裡面是否有 NA 02/22 11:56
2F:→ didihung: 你的i要跑到(length(k)+n)但是你的k並沒有這麼長 02/22 12:03
3F:→ F0011010101: 是for (i in (n+1):(length(k)-n))吧? 02/22 13:49
4F:→ guitarbird: 對! 蠢了,謝謝大大們 02/22 15:09