数据表筛选不起作用

时间:2017-10-12 19:54:07

标签: r filter datatable

我正在尝试创建一个数据表,并为我的任务做一些计算。但是,当我创建和操作数据时,由于某种原因,过滤不起作用。例如,如果我将列's'过滤为值0.7,则没有解决方案。对于值0.9,它可以正常工作。有点奇怪。

感谢您的帮助。

    library(data.table)

    p<-as.data.table(cbind(0:6, c(0,0.15,0.33,0.37,0.40,0.42,0.43)))
    states<-seq(from=0, to=30,by=0.1)
    actions<-seq(from=0,to=6)
    actions<-as.data.table(actions)
    actions[,hunt_share:=numeric()]
    for(i in 1:7)
    {
      if(i==1)
        actions[i]$hunt_share<-0
      else
        actions[i]$hunt_share<-floor(164/(i-1)*10)/10
    }

    u_star<-data.table(t=integer(),s=numeric(),a=integer(),value=numeric())
    r<-data.table(t=integer(),s_bar=numeric(),s=numeric(),a=integer(),value=numeric())
    trans_prob<-data.table(t=integer(),s_bar=numeric(),s=numeric(),a=integer(),value=numeric())
    str(trans_prob)
    ####### transitional probabilities
    horizon<-5
    for(time in 1:horizon)
    {
      for(i in states)
      {
        for(a in actions$actions)
        {
          if((a==0))
          {
            tmp<-data.table(t(c(time,max(i-6,0),i,a,1)))
            colnames(tmp)<-colnames(trans_prob)
            trans_prob<-rbind(trans_prob,tmp,fill=T)
          }

          if((a>0)&(i>=0.5))
          {
            tmp<-data.table(t(c(time,min(30,i+actions[actions==a]$hunt_share-6.5),i,a,p[V1==a]$V2)))
            colnames(tmp)<-colnames(trans_prob)
            trans_prob<-rbind(trans_prob,tmp,fill=T)

            tmp<-data.table(t(c(time,max(i-6.5,0),i,a,1-p[V1==a]$V2)))
            colnames(tmp)<-colnames(trans_prob)
            trans_prob<-rbind(trans_prob,tmp,fill=T)
          }
        }

      }
      print(time)
    }
    ####### transitional probabilities

    ##Bug?
    trans_prob[s==0.9]
    trans_prob[s==0.7]
    ##Bug?

0 个答案:

没有答案