R:禁用科学记数法

R:禁用科学记数法,r,data-visualization,data-manipulation,decision-tree,R,Data Visualization,Data Manipulation,Decision Tree,我正在使用R编程语言。在一些较大的数据上,我尝试了以下代码(创建决策树): #加载库 图书馆(rpart) #生成数据 a=rnorm(1007000000,10) b=rnorm(1005000000,5) c=rnorm(100400000,10) 组我认为labels.rpart函数具有硬编码的科学符号:它使用名为formatg的私有函数使用sprintf()和%g格式进行格式化,该函数忽略选项(scipen)。您可以通过使用更好的函数替换formatg来覆盖此功能。下面是一个危险的方法:

我正在使用R编程语言。在一些较大的数据上,我尝试了以下代码(创建决策树):

#加载库
图书馆(rpart)
#生成数据
a=rnorm(1007000000,10)
b=rnorm(1005000000,5)
c=rnorm(100400000,10)

组我认为
labels.rpart
函数具有硬编码的科学符号:它使用名为
formatg
的私有函数使用
sprintf()
%g
格式进行格式化,该函数忽略
选项(scipen)
。您可以通过使用更好的函数替换
formatg
来覆盖此功能。下面是一个危险的方法:

oldformatg <- rpart:::formatg
assignInNamespace("formatg", format, "rpart")
更好的解决方案是重新缩放数据
rpart
仅对大数字切换到科学记数法,因此您可以将坏数字除以1000或1000000,并将它们描述为不同的单位。举个例子,这对我来说很有用:

库(rpart)
#生成数据
种子集(123)
a=r形式(1007000000,10)/1000
b=rnorm(1005000000,5)/1000
c=rnorm(100400000,10)/1000

组我认为
labels.rpart
函数具有硬编码的科学符号:它使用名为
formatg
的私有函数使用
sprintf()
%g
格式进行格式化,该函数忽略
选项(scipen)
。您可以通过使用更好的函数替换
formatg
来覆盖此功能。下面是一个危险的方法:

oldformatg <- rpart:::formatg
assignInNamespace("formatg", format, "rpart")
更好的解决方案是重新缩放数据
rpart
仅对大数字切换到科学记数法,因此您可以将坏数字除以1000或1000000,并将它们描述为不同的单位。举个例子,这对我来说很有用:

库(rpart)
#生成数据
种子集(123)
a=r形式(1007000000,10)/1000
b=rnorm(1005000000,5)/1000
c=rnorm(100400000,10)/1000

小组成员:谢谢!我会看一看也许会有帮助:谢谢!我会看一看谢谢你的回复!我正在阅读并试图理解你的答案。你为什么说这是一种“危险的方式”?我不想把数字分开。有没有一种非危险的方式来超越科学记数法?感谢您的帮助修改不属于您的代码是危险的,因为它可能以您未考虑的方式使用。据我所知,只有
rpart
包的维护人员才能安全地进行您想要的更改
rpart
源代码如下:;您可以留言要求他们尊重
scipen
设置。谢谢您的回复!我正在阅读并试图理解你的答案。你为什么说这是一种“危险的方式”?我不想把数字分开。有没有一种非危险的方式来超越科学记数法?感谢您的帮助修改不属于您的代码是危险的,因为它可能以您未考虑的方式使用。据我所知,只有
rpart
包的维护人员才能安全地进行您想要的更改
rpart
源代码如下:;您可以留言要求他们遵守
scipen
设置。
assignInNamespace("formatg", oldformatg, "rpart")