【问题标题】:Why R doesn't show digit after decimal point in numeric data type?为什么R在数字数据类型中不显示小数点后的数字?
【发布时间】:2021-04-15 02:39:25
【问题描述】:

我有一个从文件中读取到 R 中的数据框。数据包含一些数字列,一些数字列在小数点后有数字,而一些列没有。没有小数点后数字的列有以下问题: 如果我对该列进行一些操作,导致值在小数点后有一些数字。但是,最终的数据有一些数字,例如 22.5,R 没有以这种格式显示值,它只显示 22。但是如果我在 If 条件下检查它,它确认该值实际上是 22.5。当原始数据包含一些小数点时,不会发生这种情况。

谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: r dataframe types numeric


    【解决方案1】:

    这是一个常见问题解答。 演示文稿可能与内容不同,因为它通常针对有意义的输出进行了优化。非常简单的例子如下:

    > 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,则只会显示前两个等。

    【讨论】:

    • 有没有办法让 R 将此列视为其他数字列?如果 view() 函数只显示小数点前的数字,这是非常具有误导性的。
    • 立即查看我的编辑:您可以增加默认显示尺寸(以占用更多空间为代价)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多