当我创建一个在节点上使用日期截止的rpart树时,我使用的打印方法(rpart.plotfancyRpartPlot)都以科学计数法打印日期,这使得难以解释结果。这是fancyRpartPlot:

r - 在rpart分类树中打印没有科学符号的日期-LMLPHP

有没有一种方法可以用更可解释的日期值打印此树?该树图没有意义,因为所有这些日期看起来都是相同的。

这是我创建树和绘制两种方式的代码:

library(rpart) ; library(rpart.plot) ; library(rattle)
my_tree <- rpart(a ~ ., data = dat)
rpart.plot(my_tree)
fancyRpartPlot(my_tree)

使用此数据:
# define a random date/time selection function
generate_days <- function(N, st="2012/01/01", et="2012/12/31") {
  st = as.POSIXct(as.Date(st))
  et = as.POSIXct(as.Date(et))
  dt = as.numeric(difftime(et,st,unit="sec"))
  ev = runif(N, 0, dt)
  rt = st + ev
  rt
}

set.seed(1)
dat <- data.frame(
  a = runif(1:100),
  b = rpois(100, 5),
  c = sample(c("hi","med","lo"), 100, TRUE),
  d = generate_days(100)
)

最佳答案

从实际的角度来看,也许您只想从数据开始就使用几天:

dat$d <- dat$d-as.POSIXct(as.Date("2012/01/01"))
my_tree <- rpart(a ~ ., data = dat)
rpart.plot(my_tree,branch=1,extra=101,type=1,nn=TRUE)

r - 在rpart分类树中打印没有科学符号的日期-LMLPHP

这样可以将数量减少到可以管理且有意义的程度(尽管可能不如特定日期有意义)。您甚至可能希望将其四舍五入到最近的日期或星期。 (我无法在计算机上安装GTK +,因此无法使用fancyRpartPlot。)

07-24 09:52
查看更多