[问题] 找局部极小值

楼主: 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