【问题标题】:Julia - describe() function display incomplete summary statisticsJulia - describe() 函数显示不完整的汇总统计信息
【发布时间】:2019-01-05 10:50:24
【问题描述】:

我正在尝试使用 Julia 进行基本数据分析

我正在关注this tutorial 的火车数据集,可以使用以下代码找到here(名为train_u6lujuX_CVtuZ9i.csv):

using DataFrames, RDatasets, CSV, StatsBase
train = CSV.read("/Path/to/train_u6lujuX_CVtuZ9i.csv");
describe(train[:LoanAmount])

并得到这个输出:

Summary Stats:
Length:         614
Type:           Union{Missing, Int64}
Number Unique:  204

代替教程的输出:

Summary Stats:
Mean:           146.412162
Minimum:        9.000000
1st Quartile:   100.000000
Median:         128.000000
3rd Quartile:   168.000000
Maximum:        700.000000
Length:         592
Type:           Int64
% Missing:      3.583062

这也对应于describe()函数应该给出的StatsBase.jl的输出

【问题讨论】:

    标签: statistics julia summary


    【解决方案1】:

    这是当前(在当前版本中)在 StatsBase.jl 中实现的方式。简而言之,train.LoanAmount 没有 eltypeReal 的子类型,然后 StatsBase.jl 使用仅打印长度、eltype 和唯一值数量的后备方法。您可以写describe(collect(skipmissing(train.LoanAmount))) 来获取汇总统计信息(当然缺失的数量除外)。

    但是,实际上,我建议您使用另一种方法。如果您想在单个列上获得更详细的输出,请使用:

    describe(train, :all, cols=:LoanAmount)
    

    您将获得一个额外作为DataFrame 返回的输出,这样您不仅可以查看统计信息,还可以访问它们。

    选项:all 将打印所有统计信息,请参阅DataFrames.jl 中的describe 文档字符串以查看可用选项。

    您可以在当前版本的 DataFrames.jl here 上找到一些使用此函数的示例。

    【讨论】:

    • 非常感谢@BogumiłKamiński 提供非常准确的答案(一如既往)。
    • 感谢您的出色回答,感谢您对社区的支持。我尝试了上面的语法但失败了,但它与匹配文档字符串定义的describe(train[[:LoanAmount]], :all) 一起使用。
    • 语法在过去 18 个月内发生了变化。我已经更新了答案以匹配现在有效的答案。
    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 2019-03-19
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多