是否有提供有关数据帧实用信息的功能?

时间:2019-11-26 11:36:33

标签: python r tidyverse

在Python中,有一个函数data.info()。此功能为您提供有关数据集的所有信息,例如数据类型,内存,条目数等。
在这里,您可以在Python中查找有关.info()函数的更多信息。

R中是否还有一个函数可以提供此类信息?

3 个答案:

答案 0 :(得分:7)

所以这里有一些选择

基本R

在Base R中,有一些选项可用于获取有关您的数据的此类数据:

str

您可以使用str查看数据框的结构

str(iris)
'data.frame':   150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

摘要

此外,还有一个summary函数,该函数为每列填写五个数字,然后计算因子:

summary(iris)
  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width          Species  
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100   setosa    :50  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300   versicolor:50  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300   virginica :50  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199                  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800                  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500     

dplyr

dplyr提供的内容类似于str,其中显示了一些数据类型

library(dplyr)
glimpse(iris)

Observations: 150
Variables: 5
$ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5...
$ Sepal.Width  <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3.0, 3.0, 4.0, 4.4, 3.9, 3.5, 3.8, 3...
$ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.6, 1.4, 1.1, 1.2, 1.5, 1.3, 1.4, 1.7, 1...
$ Petal.Width  <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0...
$ Species      <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, setosa, setosa, setosa, setosa, setosa, ...

skimr

最后,skimr软件包提供了增强的summary,其中包括很少的直方图

library(skimr)
skim(iris)

-- Data Summary ------------------------
                           Values
Name                       iris  
Number of rows             150   
Number of columns          5     
_______________________          
Column type frequency:           
  factor                   1     
  numeric                  4     
________________________         
Group variables            None  

-- Variable type: factor -------------------------------------------------------
  skim_variable n_missing complete_rate ordered n_unique top_counts               
1 Species               0             1 FALSE          3 set: 50, ver: 50, vir: 50

-- Variable type: numeric ------------------------------------------------------
  skim_variable n_missing complete_rate  mean    sd    p0   p25   p50   p75  p100 hist 
1 Sepal.Length          0             1  5.84 0.828   4.3   5.1  5.8    6.4   7.9 ▆▇▇▅▂
2 Sepal.Width           0             1  3.06 0.436   2     2.8  3      3.3   4.4 ▁▆▇▂▁
3 Petal.Length          0             1  3.76 1.77    1     1.6  4.35   5.1   6.9 ▇▁▆▇▂
4 Petal.Width           0             1  1.20 0.762   0.1   0.3  1.3    1.8   2.5 ▇▁▇▅▃

在这些功能之间,您可以很好地查看数据!

答案 1 :(得分:0)

这不是一个函数,但是我经常要做的前三件事

library(tidyverse)

# Shows top 6 rows
iris %>% head() 

# Gives dimensions of data.frame
iris %>% dim() 

# Gives the classes of the data in each column (e.g. numeric, character etc)
iris %>% sapply(class) 

答案 2 :(得分:0)

我使用的最好的软件包是 inspectdf(Niels 在上面的评论中提到),这是我在上面没有看到的。 inspectdf 通过特定的函数调用完成了您在 @MDEWITT 中的skimr 中看到的大部分摘要;例如,inspect_catinspect_num 分别用于分类和数值变量摘要。

我的评论的贡献是,inspectdf 有两个额外的函数 inspect_imbinspect_cor,它们分别查看每列最常见的值和数字列之间的相关性。我发现这些对于数据清理/预处理非常有用。