Datensets überblicken

Diagnostik
AdventskalendR
Autor:in

Gerrit Hirschfeld

Veröffentlichungsdatum

21. Dezember 2024

Datensets überblicken

Der Erste Schritt, nachdem man ein Datenset geladen hat, besteht oft darin erstmal ein Überblick zu erhalten was für Daten da eigentlich drin stehen. Das ist typischerweise nix, was man in einer Publikation o.ä erwähnt, aber auch hierfür gibt es eine Reihe von Möglichkeiten, die die Arbeit sehr erleichtern können und in unterschiedlichen Situationen hilfreich sind.

Wenns schnell gehen muss: Base-R names, table und summary

Wenn ich für jedes mal, das ich names(table) , gefolgt von table(data$collumn) oder summary(table) getippt habe, einen Cent bekommen hätte, hätte ich sehr viele Cent. Auch heute noch nutze ich diese drei Funktionen als Startpunkt und zwischendurch immer wieder, um mir die Variablennamen oder Faktorstufen anzeigen zu lassen.

library(ggplot2) # nur für das Datenset
data(diamonds)

names(diamonds)
 [1] "carat"   "cut"     "color"   "clarity" "depth"   "table"   "price"  
 [8] "x"       "y"       "z"      
summary(diamonds)
     carat               cut        color        clarity          depth      
 Min.   :0.2000   Fair     : 1610   D: 6775   SI1    :13065   Min.   :43.00  
 1st Qu.:0.4000   Good     : 4906   E: 9797   VS2    :12258   1st Qu.:61.00  
 Median :0.7000   Very Good:12082   F: 9542   SI2    : 9194   Median :61.80  
 Mean   :0.7979   Premium  :13791   G:11292   VS1    : 8171   Mean   :61.75  
 3rd Qu.:1.0400   Ideal    :21551   H: 8304   VVS2   : 5066   3rd Qu.:62.50  
 Max.   :5.0100                     I: 5422   VVS1   : 3655   Max.   :79.00  
                                    J: 2808   (Other): 2531                  
     table           price             x                y         
 Min.   :43.00   Min.   :  326   Min.   : 0.000   Min.   : 0.000  
 1st Qu.:56.00   1st Qu.:  950   1st Qu.: 4.710   1st Qu.: 4.720  
 Median :57.00   Median : 2401   Median : 5.700   Median : 5.710  
 Mean   :57.46   Mean   : 3933   Mean   : 5.731   Mean   : 5.735  
 3rd Qu.:59.00   3rd Qu.: 5324   3rd Qu.: 6.540   3rd Qu.: 6.540  
 Max.   :95.00   Max.   :18823   Max.   :10.740   Max.   :58.900  
                                                                  
       z         
 Min.   : 0.000  
 1st Qu.: 2.910  
 Median : 3.530  
 Mean   : 3.539  
 3rd Qu.: 4.040  
 Max.   :31.800  
                 

Wenn das Datenset nur aus wenigen Variablen wie hier besteht, reicht das auch vollkommen aus.

Wenn man kein Codebook hat sjdata

Das Paket sjPlot enthält viele sehr praktische Funktionen, eine davon ist aber definitiv view_df(). Im Prinzip erzeugt diese Funktion die ersten Spalten eines Codebooks. Vorraussetzung ist natürlich, dass die Daten bereits diese Informationen enthalten…

library(sjPlot)
Install package "strengejacke" from GitHub (`devtools::install_github("strengejacke/strengejacke")`) to load all sj-packages at once!
view_df(diamonds)
Data frame: diamonds
ID Name Label Values Value Labels
1 carat range: 0.2-5.0
2 cut Fair
Good
Very Good
Premium
Ideal
3 color D
E
F
G
H
I
J
4 clarity I1
SI2
SI1
VS2
VS1
VVS2
VVS1
IF
5 depth range: 43.0-79.0
6 table range: 43.0-95.0
7 price range: 326-18823
8 x range: 0.0-10.7
9 y range: 0.0-58.9
10 z range: 0.0-31.8

Wenn man auch Missings und Verteilungen checken mag - skim

Gerade wenn man auch viele numerische Variablen hat, möchte man zusätzlich natürlich oft auch noch einen ersten ganz groben Überblick über die Verteilungen etc bekommen. Hierfür ist das Paket skimr und die passend benannte Funktion skim() sehr zu empfehlen. Diese nutzt sehr gut mini-Histogramme.

library(skimr)
skim(diamonds)
Data summary
Name diamonds
Number of rows 53940
Number of columns 10
_______________________
Column type frequency:
factor 3
numeric 7
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
cut 0 1 TRUE 5 Ide: 21551, Pre: 13791, Ver: 12082, Goo: 4906
color 0 1 TRUE 7 G: 11292, E: 9797, F: 9542, H: 8304
clarity 0 1 TRUE 8 SI1: 13065, VS2: 12258, SI2: 9194, VS1: 8171

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
carat 0 1 0.80 0.47 0.2 0.40 0.70 1.04 5.01 ▇▂▁▁▁
depth 0 1 61.75 1.43 43.0 61.00 61.80 62.50 79.00 ▁▁▇▁▁
table 0 1 57.46 2.23 43.0 56.00 57.00 59.00 95.00 ▁▇▁▁▁
price 0 1 3932.80 3989.44 326.0 950.00 2401.00 5324.25 18823.00 ▇▂▁▁▁
x 0 1 5.73 1.12 0.0 4.71 5.70 6.54 10.74 ▁▁▇▃▁
y 0 1 5.73 1.14 0.0 4.72 5.71 6.54 58.90 ▇▁▁▁▁
z 0 1 3.54 0.71 0.0 2.91 3.53 4.04 31.80 ▇▁▁▁▁