作者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/cn.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