我有以下df
Id a_min_date a_max_date b_min_date b_max_date c_min_date c_max_date d_min_date a_max_date
1 2014-01-01 2014-01-10 2014-01-05 2014-01-15 NA NA 2014-02-20 2014-05-01
2 2014-02-01 2014-02-10 NA NA 2015-02-20 2015-03-01 NA NA
我已经按 ID 添加了每组(a、b、c、d)的间隔。首先,我已将开始日期和结束日期转换为润滑间隔。如果没有重叠,我想绘制间隔并计算每组结束与下一组开始之间的时间差(以天为单位)。我尝试使用 IRanges 包并将日期转换为整数(如此处使用的(链接)),但对我不起作用。
ir <- IRanges::IRanges(start = as.integer((as.Date(df$a_min_date))), end = as.integer((as.Date(df$a_max_date))))
bins <- disjointBins(IRanges(start(ir), end(ir) + 1))
dat <- cbind(as.data.frame(ir), bin = bins)
ggplot(dat) +
geom_rect(aes(xmin = start, xmax = end,
ymin = bin, ymax = bin + 0.9)) +
theme_bw()
我的原始 df 出现此错误:
Error in .Call2("solve_user_SEW0", start, end, width, PACKAGE = "IRanges") :
solving row 1: range cannot be determined from the supplied arguments (too many NAs)
有人有使用其他软件包的另一种解决方案吗?