默认情况下,使用函数print
(在R包 skimr 中)创建的对象的skim()
方法按字母顺序对变量进行排序。如何获得此方法以按在汇总数据集中出现的顺序打印变量?
# 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
答案 0 :(得分: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分支。它真的重新思考了打印的工作方式。