r - 即使有选项,R 中的 huxtable 默认为科学记数法(scipen=999)

标签 r

我试图生成像样的表格,并在过去一周尝试了很多包,我的头都在游泳。今天早上开始使用 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 选项显示值。

关于r - 即使有选项,R 中的 huxtable 默认为科学记数法(scipen=999),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50080713/

相关文章:

mysql - 标准无歧义格式 [R] MySQL 导入数据

r - 使用 for 循环对多列进行 mutate 来重新编码值

r - 在ggplot2中,如何绘制散点的平均点并连接这些平均点?

通过脚本运行用 R 编写的 GUI

r - 在 R 中,为什么风格指南建议只使用双引号?

r - 在 R 中的大图中总结邻居属性的快速方法

r - 连接到 R 中的 Oracle 数据库以运行 SQL 查询

r - 对于每一行,查找条件下的值

python - 从python中的 Pandas 系列中删除元素

r - 如何在数据框中找到最大值?