【问题标题】:How to include interval of a certain data in data frame如何在数据框中包含某个数据的间隔
【发布时间】:2018-01-11 12:11:43
【问题描述】:
x<-rnorm(100)
u<-runif(100)
t1<-(1/0.0105)*log(1-((0.0105/(exp(-8+0.03*x)))*(log(1-u))))
c<-rexp(100,1/1515)
delta<-1*(t1>c)
datinterval<-data.frame(t1[delta==1],c[delta==1],delta[delta==1])
datinterval$interval <- cut(datinterval$t1, breaks=seq(0, 500, 100))

这是获取 delta=1 数据区间的 r 代码。我想使用以下代码将其插入到包含完整数据的数据框中:

x<-rnorm(100)
u<-runif(100)
t1<-(1/0.0105)*log(1-((0.0105/(exp(-8+0.03*x)))*(log(1-u))))
c<-rexp(100,1/1515)
delta<-1*(t1>c)
delta
dat=data.frame(t1,c,delta)
dat$Interval[delta==1]<-cut(dat$t[delta==1], breaks=seq(0, 500, 100))

代码不显示区间,只显示1,2,3,4...

the interval part correctly shows the interval

but the interval part shows only 1,2,3,4...

【问题讨论】:

    标签: r dataframe intervals


    【解决方案1】:

    那个新的区间变量只显示 1,2,3,4 的原因是

    class(cut(dat$t1[delta==1], breaks=seq(0, 500, 100)))
    [1] "factor"
    

    您需要做的就是将代码的最后一行更改为

    dat$Interval[delta==1] <- as.character(cut(dat$t1[delta==1], breaks=seq(0, 500, 100)))
    

    我不确定为什么您的第一段代码有效。我将把这个留给 SO 的其他成员来回答。我也很想知道。

    PS:第二段代码末尾有一个错字。应该是dat$t1,而不是dat$t

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多