Github项目推荐 | visdat - 数据初步探索性可视化工具

时间:2022-06-23
本文章向大家介绍Github项目推荐 | visdat - 数据初步探索性可视化工具,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

visdat - Preliminary Exploratory Visualisation of Data

by rOpenSci

Site:http://visdat.njtierney.com/

如何安装?

你可以在CRAN获取visdat

install.packages("visdat")

如果您想使用开发版本,请从github安装:


# install.packages("devtools")
devtools::install_github("ropensci/visdat")

visdat能做什么?

vis_dat最初受到csv-fingerprint的启发,通过使用vis_dat将数据框中的变量类显示为带有vis_dat的绘图,并使用vis_miss简要查看丢失的数据模式,vis_dat将帮助你可视化数据框并“查看数据”。

visdat 的六大特点如下:

  • vis_dat()将数据框可视化,显示列的类别,并显示缺少的数据。
  • vis_miss()只显示缺失的数据,并允许对缺失进行聚类并重新排列列。 vis_miss()类似于mi包中的missing.pattern.plot。 然而不幸的是,missing.pattern.plot已经不再出现在mi包中(截至2016年2月14日)。
  • vis_compare()将相同维度的两个数据帧之间的差异可视化
  • vis_expect()将数据中某些条件成立的位置可视化
  • vis_cor()在一个漂亮的热图中对变量的相关性可视化
  • vis_guess()将数据中各个类的earch值可视化

你可以在“using visdat”小节中查看更多关于visdat的信息。

请注意,本项目随着贡献者行为准则一起发布。 参与此项目即表示同意遵守其条款。

示例

  • 使用 vis_dat()

让我们看看基地R的airquality(空气质量)数据集中的内容,其中包含有关1973年5月至9月纽约每日空气质量测量的信息。有关数据集的更多信息可以在 ?airquality中找到。

library(visdat)
vis_dat(airquality)

上面的图告诉我们,R读取这个数据集时是数值和整数值,并在Ozone和Solar.R中显示一些缺失的数据。类在图例中表示,缺失的数据用灰色表示,列/变量名列在x轴上。

  • 使用 vis_miss()

我们可以使用vis_miss()进一步探索缺失的数据:

vis_miss(airquality)

vis_miss中缺失/完成的百分比精确到小数点后1位。

你可以通过设置cluster = TRUE来对缺失进行聚类:

vis_miss(airquality,          cluster = TRUE)

通过设置sort_miss = TRUE,数据列也可以按缺失最多的列进行排列:

vis_miss(airquality,         sort_miss = TRUE)

vis_miss表示当缺失率<0.1%时,缺少数据的数量非常少:


test_miss_df <- data.frame(x1 = 1:10000,
                           x2 = rep("A", 10000),
                           x3 = c(rep(1L, 9999), NA))

vis_miss(test_miss_df)

vis_miss还将提示何时没有丢失数据:

vis_miss(mtcars)

为了进一步探索数据集中的缺失结构,我推荐使用naniar包,它为缺失值的图形和数值探索提供了更多通用工具。

  • 使用vis_compare()

有时你想要查看数据中发生了哪些变化。 vis_compare()可以显示两个相同大小的数据帧的差异。 我们来看一个例子:

让我们对chickwts做一些修改,并比较这个新的数据集:


set.seed(2019-04-03-1105)
chickwts_diff <- chickwts
chickwts_diff[sample(1:nrow(chickwts), 30),sample(1:ncol(chickwts), 2)] <- NA

vis_compare(chickwts_diff, chickwts)

这里的差异会用蓝色标出。

如果你尝试在尺寸不同时比较差异,则会出现一个非常难看的错误:

chickwts_diff_2 <- chickwts
chickwts_diff_2$new_col <- chickwts_diff_2$weight*2

vis_compare(chickwts, chickwts_diff_2)
# Error in vis_compare(chickwts, chickwts_diff_2) : 
#   Dimensions of df1 and df2 are not the same. vis_compare requires dataframes of identical dimensions.

篇幅有限,如需查看更多使用示例,请访问Github项目查看。

Github项目地址:

https://github.com/ropensci/visdat