【问题标题】:skimr: How to get variables printed in the original order?skimr:如何以原始顺序打印变量?
【发布时间】:2018-07-17 13:58:58
【问题描述】:

默认情况下,使用函数 skim()(在 R 包 skimr 中)创建的对象的 print 方法按字母顺序对变量进行排序。我怎样才能让这种方法按照它们在汇总数据集中出现的顺序打印变量?

# Default (desired) order of variable names
names(iris)
#> [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width" 
#> [5] "Species"

# `skim()` sorts variables alphabetically
skimr::skim_with(numeric = list(hist = NULL))
skimr::skim(iris) 
#> / ... the output was truncated manually ... /
#>
#> -- Variable type:numeric ---------------------------------------------
#>      variable missing complete   n mean   sd  p0 p25  p50 p75 p100
#>  Petal.Length       0      150 150 3.76 1.77 1   1.6 4.35 5.1  6.9
#>   Petal.Width       0      150 150 1.2  0.76 0.1 0.3 1.3  1.8  2.5
#>  Sepal.Length       0      150 150 5.84 0.83 4.3 5.1 5.8  6.4  7.9
#>   Sepal.Width       0      150 150 3.06 0.44 2   2.8 3    3.3  4.4

【问题讨论】:

    标签: r skimr


    【解决方案1】:

    发生这种情况的原因与软件包的工作原理有很大关系,这意味着对您的问题的简短回答是否定的。但是,如果您愿意使用skim_df 对象或执行skim_to_wide(),您实际上可以完成此操作

    so_l <- skimr::skim_to_list(mtcars)$numeric  
    

    你可以得到一个漂亮的字符串列表

       orig_order<- names(mtcars)
       so_l$ordered_var_name <- factor(so_l$variable, levels = orig_order, 
            ordered = TRUE)
    

    然后数据将按照您想要的顺序排列,但打印可能适合您,也可能不适合您。

    您可能还想尝试从 github 安装 v2 分支。它真的重新思考了很多关于打印的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 2013-12-05
      • 2020-02-18
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多