全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1092 6
2016-05-24
想要d中每组间隔小于10的数存在一起输出来,但目前计算不完,代码如下:
> d
[1]  478  477  477  477  476  483  609  635
[9]  654  947  947  948  948  948  949  949
[17]  949  948  948  948  948  950  950  963
[25] 1020 1021 1020 1020 1020 1018 1074 1074
[33] 1163 1161 1161 1176 1176 1176 1176 1206
[41] 1265 1264 1265
i=length(d)
f=NULL
while(3<=i&i<=length(d)){
  for(j in (i-1):1){
    while(d[i]-d[j]>=10&d[i]-d[j]>=-10){
      f<-c(i:(j+1))
      i=j
      print(f)
      print(i)
    }
  }
}

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-5-24 09:46:14
没有终止循环的语句啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-24 10:11:34
jinkelazzz 发表于 2016-5-24 09:46
没有终止循环的语句啊
刚刚弄出来了,是由于6:1不符合while循环所以进不去,变成死循环~~
但要怎么才能把6:1放进去呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-24 10:14:43
修改的代码虽然能够完成计算结束循环,但6:1依然没有在里面计算,怎样才能放进去呢?另:f中一行只有一个数的是需要删掉的,要怎样才能把它剔除呢?
i=length(d)
p=NULL
for(z in 1:(i-1)){
  if(d[z+1]-d[z]>=10|d[z+1]-d[z]<=-10){
    a0<-c(p,(z+1))  #存储每组大于等于10的截点
    print(a0)
  }
}
f=NULL
while(a0<=i&i<=length(d)){
  for(j in (i-1):1){
    while(d[i]-d[j]>=10|d[i]-d[j]<=-10){
      f<-c(i:(j+1))
      i=j
      print(f)
    }
  }
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-24 17:35:15
紫色的天天 发表于 2016-5-24 10:14
修改的代码虽然能够完成计算结束循环,但6:1依然没有在里面计算,怎样才能放进去呢?另:f中一行只有一个数 ...
a0里面没有存储没有大于等于10的截点,最终只存了最后一组的大于等于10的截点。要想都存下来需要
i<-length(d)
p<-NULL
for(z in 1:(i-1)){
  if(d[z+1]-d[z]>=10|d[z+1]-d[z]<=-10){
    p<-c(p,(z+1))  #存储每组大于等于10的截点,
  }
}
p
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-24 17:41:18
余下你说的话没看懂,你可以再详细的说一下你想干什么。
由于你的a0只是一个值,while循环括号里面的代码不会发生变化,a0<=i&i<=length(d)没有任何意义,是必然满足的条件。不知道你想说明什么。(a0、i、length(d)都是常数,且a0=41,i=length(d)=43)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群