na-per-col

R
datawrangling
na
string
Published

November 15, 2023

Aufgabe

Zählen Sie die Anzahl der fehlenden Werte pro Spalte im Datensatz penguins.

Zeigen Sie einen prägnanten Weg.

Hinweise:

data("penguins", package = "palmerpenguins")  # ggf. das Paket vorab installieren











Lösung

Important

Wie oft in einer Sprache, gibt es mehrere Wege, eine Sache auszudrücken. So auch in R. Im Folgenden sind mehrere Lösungen vorgeschlagen. Sie müssen nicht alle kennen. Es reicht, wenn Sie eine einzige kennen (es sei denn, Sie wollen ein Experte sein oder werden). Betrachten Sie es als eine Frage des Geschmacks: Das Menü ist vor Ihnen ausgebreitet, und Sie greifen zu dem, was Ihnen am meisten zusagt. \(\square\)

library(tidyverse)
library(easystats)
library(skimr)

Weg 1

penguins |> 
  purrr::map_int(~ sum(is.na(.)))
          species            island    bill_length_mm     bill_depth_mm 
                0                 0                 2                 2 
flipper_length_mm       body_mass_g               sex              year 
                2                 2                11                 0 

Weg 2

colSums(is.na(penguins))
          species            island    bill_length_mm     bill_depth_mm 
                0                 0                 2                 2 
flipper_length_mm       body_mass_g               sex              year 
                2                 2                11                 0 

Weg 3

describe_distribution(penguins)
Variable Mean SD IQR Min Max Skewness Kurtosis n n_Missing
bill_length_mm 43.92193 5.4595837 9.300 32.1 59.6 0.0531181 -0.8760270 342 2
bill_depth_mm 17.15117 1.9747932 3.125 13.1 21.5 -0.1434646 -0.9068661 342 2
flipper_length_mm 200.91520 14.0617137 23.250 172.0 231.0 0.3456818 -0.9842729 342 2
body_mass_g 4201.75439 801.9545357 1206.250 2700.0 6300.0 0.4703293 -0.7192219 342 2
year 2008.02907 0.8183559 2.000 2007.0 2009.0 -0.0537278 -1.5049366 344 0

Allerdings berücksichtigt describe_distribution nur metrische Spalten.

Weg 4

summary(penguins)
      species          island    bill_length_mm  bill_depth_mm  
 Adelie   :152   Biscoe   :168   Min.   :32.10   Min.   :13.10  
 Chinstrap: 68   Dream    :124   1st Qu.:39.23   1st Qu.:15.60  
 Gentoo   :124   Torgersen: 52   Median :44.45   Median :17.30  
                                 Mean   :43.92   Mean   :17.15  
                                 3rd Qu.:48.50   3rd Qu.:18.70  
                                 Max.   :59.60   Max.   :21.50  
                                 NA's   :2       NA's   :2      
 flipper_length_mm  body_mass_g       sex           year     
 Min.   :172.0     Min.   :2700   female:165   Min.   :2007  
 1st Qu.:190.0     1st Qu.:3550   male  :168   1st Qu.:2007  
 Median :197.0     Median :4050   NA's  : 11   Median :2008  
 Mean   :200.9     Mean   :4202                Mean   :2008  
 3rd Qu.:213.0     3rd Qu.:4750                3rd Qu.:2009  
 Max.   :231.0     Max.   :6300                Max.   :2009  
 NA's   :2         NA's   :2                                 

Weg 5

skim(penguins)
Data summary
Name penguins
Number of rows 344
Number of columns 8
_______________________
Column type frequency:
factor 3
numeric 5
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
species 0 1.00 FALSE 3 Ade: 152, Gen: 124, Chi: 68
island 0 1.00 FALSE 3 Bis: 168, Dre: 124, Tor: 52
sex 11 0.97 FALSE 2 mal: 168, fem: 165

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
bill_length_mm 2 0.99 43.92 5.46 32.1 39.23 44.45 48.5 59.6 ▃▇▇▆▁
bill_depth_mm 2 0.99 17.15 1.97 13.1 15.60 17.30 18.7 21.5 ▅▅▇▇▂
flipper_length_mm 2 0.99 200.92 14.06 172.0 190.00 197.00 213.0 231.0 ▂▇▃▅▂
body_mass_g 2 0.99 4201.75 801.95 2700.0 3550.00 4050.00 4750.0 6300.0 ▃▇▆▃▂
year 0 1.00 2008.03 0.82 2007.0 2007.00 2008.00 2009.0 2009.0 ▇▁▇▁▇

Categories:

  • R
  • wrangling
  • na
  • string