楼主: 大白zero
1146 1

[问答] 在做计算时间周期的时候写了一个for循环,出错了,好像是if判断的不对,求解答 [推广有奖]

  • 0关注
  • 0粉丝

初中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
19 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
256 点
帖子
6
精华
0
在线时间
24 小时
注册时间
2018-3-11
最后登录
2019-8-9

楼主
大白zero 发表于 2018-10-23 14:13:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
想要请教一下,我想要计算时间周期,规则是:一条数据会有5天的影响期,如果第二个时间段和第一个时间段的间隔大于5天,则第二个时间的周期为10天,如果小于5天,则是一开始的5天加上这两个时间的的时间间隔,以此类推,但是我按照这个逻辑去处理一个列表时总是出错,但检查了好久也没有找到错误在那,有没有大神能帮我解答一下
程序是:
for (i in 1:length(test)) {
  test[[i]]$period[1]=3
  for (j in 2:nrow(test[[i]])) {
    if(difftime(test[[i]]$time[j],test[[i]]$time[j-1],units = "days")>3){
      test[[i]]$period[j]<-test[[i]]$period[j-1]+3
    }else{
      test[[i]]$period[j]<-test[[i]]$period[j-1]+difftime(test[[i]]$time[j],test[[i]]$time[j-1],units = "days")
    }
  }
}



报错:Error in if (difftime(test[[i]]$time[j], test[[i]]$time[j - 1], units = "days") >  :
  missing value where TRUE/FALSE needed
不知道是不是判断那部分写错了,一直没有找到错误的地方,求解答

二维码

扫码加我 拉你入群

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

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

关键词:时间周期 计算时间 时间间隔 时间的 时间段

1540275078(1).jpg (15.14 KB)

1540275078(1).jpg

沙发
大白zero 发表于 2018-10-23 15:18:24
解决了,开心。希望以后不要再犯这样很low的错误

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 14:24