r - 为什么R在数字数据类型中不显示小数点后的数字?
问题描述
我有一个从文件中读取到 R 中的数据框。数据包含一些数字列,一些数字列在小数点后有数字,而一些列没有。没有小数点后数字的值的列有以下问题:如果我对该列进行一些操作,导致值在小数点后有一些数字。但是,最终的数据有一些数字,例如 22.5,R 没有以这种格式显示值,它只显示 22。但是如果我在 If 条件下检查它,它确认该值实际上是 22.5。当原始数据包含一些小数点时,不会发生这种情况。
谁能让我知道如何解决这个问题?
解决方案
这是一个常见问题解答。 演示文稿可能与内容不同,因为它通常针对有意义的输出进行了优化。非常简单的例子如下:
> df <- data.frame(a=c(10000.12, 10000.13), b=c(42L, 43L))
> df
a b
1 10000.1 42
2 10000.1 43
> all.equal(df[1,"a"], 10000.12)
[1] TRUE
>
所以最后一位数字并没有像测试确认的那样“消失”——它只是超出了显示的(默认为六位)数字。
同样,您始终可以显式显示比(紧凑,默认)显示更多的小数:
> cat(sprintf("%14.8f", df[1,"a"]), "\n")
10000.12000000
>
编辑您还可以将默认显示大小增加一个或多个:
options(digits=7)
是最小的变化,但并非所有列都使用七位数:
> options(digits=7)
> df
a b
1 10000.12 42
2 10000.13 43
>
不用说,如果您有数字,则.123
只会显示前两个等。
推荐阅读
- excel - 如何将字段值转换为excel中的列?(无转置)
- flutter - 为什么flutter pub cache repair会下载以前使用的每个包版本?
- python-3.x - 在 Python 中删除一列的相似文本行
- python - PyCharm 文档字符串中未解决的属性引用问题
- python - 在 Pandas 中为每个唯一值创建一个数据框
- algorithm - 为什么我们每个深度只存储两三个杀手级动作?
- quarkus - 无论如何使用 quarkus-scheduler @Scheduled 和第二个下的速率?
- azure-devops - 从 Azure Devops 中的测试运行导出屏幕截图
- c++ - 我可以在双簧管中添加和/或替换音频源而不重新启动音频流吗?
- html - 旋转多个,说 7 个字 - css 动画问题