r - 即使有选项(scipen=999),R 中的 huxtable 也默认为科学记数法
问题描述
在过去的一周里,我试图制作像样的桌子并尝试了很多包裹,我的脑袋都在游泳。今天早上从 package:huxtable 开始,试图摆脱科学记数法时遇到了困难:
x <- mtcars[1:5,1:2]
x$mpg <- x$mpg*10000000 # get some large numbers
library(huxtable)
x1 <- as_hux(x)
x1
# 2.1e+08 6
# 2.1e+08 6
# 2.28e+08 4
# 2.14e+08 6
# 1.87e+08 8
我前段时间设置了全局选项(scipen=999,digits = 9),直到 package:huxtable 之前没有任何问题。最终我发现/偶然发现了一个解决方案:
x1 <- format(as_hux(x, scientific=FALSE))
我已经设置了 scipen,所以我最终来回尝试修复没有损坏的东西。我的(准菜鸟)问题:我的结论是正确的吗?出于某种原因,这个包覆盖了全局设置?有没有办法防止这种情况发生或在发生覆盖时设置某种警告?可以全局设置此格式吗?我不希望很快使用科学记数法。
解决方案
当您使用“ print()
”方法(通过键入x1
变量名)时,取决于包将如何输出值。它为此使用了自己的显示方法。碰巧写这个包的人没有查看 options() 函数设置的全局选项。它不会覆盖任何选项,而只是忽略它们。但是,如果您从结构中提取列x1
,R 将以所需的格式打印值:
> print(x1$mpg)
[1] 210000000 210000000 228000000 214000000 187000000
附注:这不是唯一这样做的包。
顺便说一句,您找到的解决方案(format()
函数)实际上将数据转换回常规数据框,因此使用您设置的 scipen=999 选项显示值。
推荐阅读
- javascript - 自动完成 Material UI Lab 中的 filterSelectedOptions 不适用于 onChnage
- c# - 使用 Lambda 表达式的 C# 任意嵌套列表转换
- typescript - 我应该在哪里添加类型定义?
- java - 如何在 2.5.4 版本中发布 Spring Kafka DLQ
- jsf - 使会话无效,然后重定向重新创建 bean
- php - PHP代码根据列值分隔表
- javascript - 如何从打字稿代码(Node js)运行JS文件
- powercli - 为什么 powercli 脚本在执行期间不接受可变参数?
- reactjs - 如何为 AWS S3 中托管的 React 应用程序将 API URL 存储在 app.config/web.config 等文件中
- python - 为什么我在 Heroku 部署中使用 Django admin 上传的动态图像没有显示?