tribble构造数据框时的数值保留问题:如何避免自动取整?
解决tribble构造数据框时的数值显示/精度问题
首先纠正你代码里的一个错误:你把构造出的tibble赋值给了tribble变量,这会直接覆盖tibble包中的tribble()函数,后续再调用该函数会出现异常,建议更换变量名,比如my_tbl <- tribble(...)。
回到核心问题:tribble本身不会自动对数值取整,你看到的“取整”效果只是tibble默认打印格式限制了小数显示位数,导致视觉上像是被取整,但实际存储的数值精度是完整的。你可以用str(my_tbl)或dplyr::glimpse(my_tbl)查看数据的实际存储值,就能验证这一点。
要让tribble在打印时显示完整的小数位,有几种实用方法:
- 临时指定打印位数:
print(my_tbl, digits = 5) - 全局修改tibble的打印精度设置:
# 设置显示5位有效数字 options(pillar.sigfig = 5) # 或者固定显示2位小数 options(pillar.max_dec_width = 2) - 构造数据时无需额外用
as.double()转换,R中带小数点的数值默认就是double类型:my_tbl <- tribble( ~Price, 899.30, 699.99 )
如果确实遇到数值被实际取整的极端情况(概率极低),可以用pillar包的num()函数显式指定数值精度:
library(pillar) my_tbl <- tribble( ~Price, num(899.30), num(699.99) )
内容的提问来源于stack exchange,提问作者jkatam
相关产品推荐
相关产品推荐

