如何在 rpart 回归树图中将绘制的数字从科学记数法更改为标准形式?
How can I change plotted numbers from scientific notation to standard form in an rpart regression tree plot?
我正在使用 rpart.plot
包来绘制回归树。如何将树底部的数字从科学记数法转换为标准形式?比如我想把14e+3
改成14000
.
这是我使用的代码:
library(rpart.plot)
rpart.plot(tm1, type=5, digits = 2, fallen.leaves = T)
结果如下:
这是一个棘手的问题,因为包作者决定用科学记数法进行硬编码。
如果我们查看 source code,有一个
函数 rpart.plot:::format0
格式化 0.001
和 9999
.
之间的任何值
因此,一种方法是创建一个覆盖这些默认值的副本,并将其分配到 rpart.plot
命名空间中。
首先,示例树:
library(nycflights13)
library(rpart.plot)
fit <- rpart(carrier ~ origin + distance, data = flights[flights$carrier %in% c("UA","AA","DL"),])
rpart.plot(fit, type = 5, digits = 2, fallen.leaves = TRUE, extra = 101)
注意科学记数法。
现在,我们将创建副本并将其命名为 myformat0
。我们需要对几个函数使用 :::
,因为它们不是从 rpart.plot
导出的。请注意,我将 9999
替换为 100000
,但您可以使用任何您想要的数字。
myformat0 <- function(x, digits=2)
{
rpart.plot:::check.integer.scalar(digits)
if(digits == 0)
digits <- getOption("digits")
if(digits >= 0)
rpart.plot:::formate(x, digits, smallest=.001, largest=100000)
else
sapply(x, format, digits=-digits)
}
现在我们需要将自定义函数分配到 rpart.plot
命名空间中。我们可以使用 assignInNamespace
:
assignInNamespace("format0", myformat0, ns = "rpart.plot")
现在剧情:
rpart.plot(fit, type = 5, digits = 2, fallen.leaves = TRUE, extra = 101)
我正在使用 rpart.plot
包来绘制回归树。如何将树底部的数字从科学记数法转换为标准形式?比如我想把14e+3
改成14000
.
这是我使用的代码:
library(rpart.plot)
rpart.plot(tm1, type=5, digits = 2, fallen.leaves = T)
结果如下:
这是一个棘手的问题,因为包作者决定用科学记数法进行硬编码。
如果我们查看 source code,有一个
函数 rpart.plot:::format0
格式化 0.001
和 9999
.
因此,一种方法是创建一个覆盖这些默认值的副本,并将其分配到 rpart.plot
命名空间中。
首先,示例树:
library(nycflights13)
library(rpart.plot)
fit <- rpart(carrier ~ origin + distance, data = flights[flights$carrier %in% c("UA","AA","DL"),])
rpart.plot(fit, type = 5, digits = 2, fallen.leaves = TRUE, extra = 101)
注意科学记数法。
现在,我们将创建副本并将其命名为 myformat0
。我们需要对几个函数使用 :::
,因为它们不是从 rpart.plot
导出的。请注意,我将 9999
替换为 100000
,但您可以使用任何您想要的数字。
myformat0 <- function(x, digits=2)
{
rpart.plot:::check.integer.scalar(digits)
if(digits == 0)
digits <- getOption("digits")
if(digits >= 0)
rpart.plot:::formate(x, digits, smallest=.001, largest=100000)
else
sapply(x, format, digits=-digits)
}
现在我们需要将自定义函数分配到 rpart.plot
命名空间中。我们可以使用 assignInNamespace
:
assignInNamespace("format0", myformat0, ns = "rpart.plot")
现在剧情:
rpart.plot(fit, type = 5, digits = 2, fallen.leaves = TRUE, extra = 101)