当我创建一个在节点处使用日期截止的 rpart 树时,我使用的打印方法 - rpart.plot
和 fancyRpartPlot
- 以科学格式打印日期符号,这使得很难解释结果。这是 fancyRpartPlot
:
有没有办法用更易解释的日期值打印这棵树?该树状图毫无意义,因为所有这些日期看起来都一样。
这是我创建树并以两种方式绘制的代码:
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)
这将数字减少到易于管理和有意义的程度(尽管可能不像特定日期那样有意义)。您甚至可能希望将其四舍五入到最近的一天或一周。 (我不能在我的电脑上安装 GTK+,所以我不能使用 fancyRpartPlot
。)
关于r - 在 rpart 分类树中打印没有科学记数法的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683548/