Data Analytics
  • Overview
  • Empirical Research
    • 1 Research Questions
    • 2 Data Collection
    • 3 Signal and Noise
    • 4 Types of Questions
      • Finding Individual Records
      • Summarizing Data
      • Exploring Data
      • Drawing Conclusions from Data
      • Fehlende Informationen vorhersagen
      • Kausalität feststellen
    • 5 Data
      • Data Sets
      • Data Records
      • Data Attributes
      • Data Types
      • Scales
      • Data Formats
        • Das CSV-Format
        • Das JSON-Format
        • Das Parquet-Format
    • 6 Tools
      • Projects
  • Introduction to R
    • 7 The Problem
    • 8 Vectors
    • 9 Data Frames
    • Simulations
    • Logic and Arithmetic
    • Objects and Variables
    • Data structures
    • Control structures
    • Loops
      • Die For-Schleife
      • Die While-Schleife
      • Die Repeat-Schleife
    • Functions
    • Readability and Reusability
  • Loading Data
    • Tidyverse and Tibbles
    • Load a data set
    • Load from multiple files
    • Getting to know the Data
    • Der Analyseprozess
    • Der Werkzeugkasten
  • Data Transformation
    • Five transformations
    • Select columns
    • Filter rows
    • Add columns
    • Change columns
      • Spalten verändern
    • Sort rows
    • Summarize rows
    • SQL and R
  • Data Visualization
    • Pleas for data visualization
    • Overview of ggplot2
    • Visualisierungsformen
      • Trends und Entwicklungen
      • Distributions
      • Word Clouds
      • Mengen und Proportionen
      • Geospatial Data
    • Formatting plots
      • Achsenformatierung
    • Multiple plots
    • Stolperfallen
      • Abgeschnittene y-Achse
      • Duale y-Achse
      • Non-Proportional Ink
    • Übungen
      • 💻Transformation der REWE-Daten
      • 💻Übung zur Datenvisualisierung
  • Communication
    • Quarto
  • SQL
    • Grundlagen SQL
      • Was ist SQL?
      • Daten importieren
      • Spalten und Ausdrücke auswählen
      • Zeilen filtern
      • Zeilen aggregieren und gruppieren
      • Aggregierte Zeilen filtern
      • Zeilen sortieren
      • 💻Übungen
    • Erweitertes SQL
      • Views
      • Mengenoperatoren
      • Unterabfragen
      • Window-Funktionen
      • Datum und Zeit
      • JSON
      • Arrays
      • Statistische Funktionen
    • Joins mit SQL
      • Das relationale Modell
      • Verbinden von Tabellen
      • Datensätze anreichern
    • Textanalysen mit SQL
      • In Texten suchen
      • Wörter analysieren
        • Daten vorfiltern
        • Säubern und Normalisieren
        • Tokenisieren und Zählen
        • Stopwörter filtern
        • POS Tagging
      • Themen identifzieren
      • Wortpaare
      • Netzwerke
      • Emoticons extrahieren
      • NLP mit spaCy
        • spaCy in Databricks installieren
        • Die NLP Pipeline
          • Tokenize
          • Part-of-Speech (POS)
          • Named Entities (NER)
          • Lemmatizer
          • Syntaktische Abhängigkeiten
        • spaCy und Spark SQL
          • spaCy und UDFs
          • Texte mit spaCy streamen
  • Data Sets & Exercises
    • Übungen
      • SQL
        • ⭐Die Simpsons Teil 1
        • ⭐Die Simpsons Teil 2
      • R
    • Fallstudien
      • Morde in Chicago
    • Datensätze
      • 📂Environmental Impacts of Food Production
      • 📂Amazon Reviews
      • 📂arXiv Papers
      • 📂Chicago Crimes
      • 📂Covid19
      • 📂Open Food Facts
      • 📂Orangenlimonade
      • 📂REWE Online Products
      • 📂Simpsons
      • 📂TED Talks
      • 📂Tweets
  • References
Powered by GitBook
On this page
  • Bestimmte Spalten anhand des Namens auswählen
  • Spalten mit einem Namensmuster auswählen
  • Bestimmte Spalten aus der Auswahl ausschließen
  • Die ersten und letzten Spalten auswählen
  • Spalten nach Datentyp selektieren
  • Mengen von Spalten definieren und selektieren
  • Weiterführende Quellen

Was this helpful?

  1. Old stuff

Spalten auswählen

Datensätze haben oft sehr viele Spalten. Für eine bestimmte Analyse interessiert uns meistens nur ein kleiner Teil davon. Mit R können wir Spalten flexibel auswählen.

Bestimmte Spalten anhand des Namens auswählen

Wir können mit R einzelne Spalten eines Dataframes anzeigen:

# Der select-Befehl kann für die Auswahl bestimmter Spalten verwendet werden
food_production %>% 
    select("food_product")
food_production["food_product"]

Es lassen sich auch mehr als eine Spalte angeben, wenn wir die Namen mit Komma separiert auflisten:

# Auch mehrere Spalten lassen sich gleichzeitig auswählen
food_production %>% 
    select("food_product", "transport")
fp_df[ c("food_product", "transport") ]

Spalten mit einem Namensmuster auswählen

Oft beabsichtigen wir Spalten auszuwählen, die ein bestimmtes Namensmuster aufweisen. Antwortspalten beinhalten etwa zu einer bestimmten Frage in der Marktforschung oft das Kürzel der Frage. Um alle Antwortspalten zu einer bestimmten Frage zu selektieren, könnten wir nach diesem Kürzel suchen. Mit dplyr und select() ist das einfach umsetzbar:

# Alle Spalten, die mit "freshwater" beginnen
food_production %>% 
    select(starts_with("freshwater"))

# Alle Spalten, die "liter_per" im Namen haben (egal wo)
food_production %>% 
    select(contains("liters_per"))

# Alle Spalten, die auf "protein" enden
food_production %>% 
    select(ends_with("protein"))
# Spalten, die mindestens ein Leerzeichen enthalten (Ergebnis hier: keine)
food_production %>% 
    select(matches("\\s"))

Weiterführende Dokumentation zu diesen vier Funktionen findet ihr hier:

Bestimmte Spalten aus der Auswahl ausschließen

Wir können mit der select() Funktion auch Spalten aus der Auswahl ausschließen, indem wir ein Minuszeichen vor den Spaltennamen setzen:

# Alle Spalten außer "land_use_change" und "animal_feed"
food_production %>% select(-"land_use_change", -"animal_feed")

Wir können das Minuszeichen auch in Kombination mit den bereits vorgestellten Funktionen verwenden:

# Alle Spalten ausschließem, die auf "protein" enden
food_production %>% select(-ends_with("protein"))

Die ersten und letzten Spalten auswählen

Mit last_col() können wir die letzte Spalte eines Tibble auswählen:

food_production %>% select(last_col())

Als Parameter der Funktion können wir ein Offset übergeben, um die x-letzte Spalte auszuwählen:

# Auswählen der vorletzten Spalte
food_production %>% select(last_col(2))

In Kombination mit dem Doppelpunkt : können wir so bestimmte aufeinanderfolgende Spalten auswählen:

# Alle Spalten ab der Zweiten bis zur vorletzten
food_production %>% select(2 : last_col(2))

Spalten nach Datentyp selektieren

Wir können mit der where() Funktion auch Spalten bezüglich des Datentyps auswählen:

food_production %>% select(where(is.numeric))
food_production %>% select(where(is.character))
food_production %>% select(where(is.logical))
food_production %>% select(where(is.factor))
# Funktion, um Datumsspalten zu erkennen
is.Date <- function(x) {
  inherits(x, c("Date", "POSIXt"))
}

covid %>% select(where(is.Date))

Mengen von Spalten definieren und selektieren

Häufig benötigt man mehrmals die gleichen Spalten. Um nicht jedes Mal die gesamte Liste aufführen zu müssen, können wir in diesem Fall einen Vektor definieren, der die Namen der Spalten enthält. Mit der all_of() Funktion können wir dann alle Spalten in diesem Vektor auswählen:

# Erstellen eines Vektors mit gewünschten Spaltennamen
vars_logistics <- c("transport", "packging", "retail")

# Selektieren auf Basis dieser Menge
food_production %>% select(all_of(vars_logistics))

# Selektieren auf Basis dieser Menge, aber ohne "transport"
food_production %>% select(all_of(vars_logistics), -transport)

Mit any_of() können wir auch Spalten im Vektor aufnehmen, die nicht existieren. Es werden alle Spalten selektiert, die in der Liste vorkommen und auch tatsächlich im Tibble vorhanden sind. So können wir einen Vektor erstellen, der Spaltennamen aus unterschiedlichen Datensätzen beinhaltet:

# Erstellen eines Vektors mit gewünschten Spaltennamen, "shipping" existiert nicht im Tibble
vars_logistics <- c("transport", "packging", "retail", "shipping")

# Selektieren auf Basis dieser Menge, "shipping" ist jedoch nicht vorhanden
food_production %>% select(all_of(vars_logistics))

Weiterführende Quellen

Die offizielle Dokumentation beinhaltet weitere Informationen und Beispiele:

In Kapitel 5 des Buches „R for Data Science“ wird die Datentransformation mit dplyr behandelt. Der folgende Link führt direkt zum Abschnitt über die select Funktion:

Last updated 8 months ago

Was this helpful?

Zu diesen drei Funktionen kommt noch eine sehr flexible Möglichkeit, Spalten anhand eines zu selektieren:

Für Datumsspalten existiert leider keine Funktion. Wir können uns diese aber selbst erstellen und anschließend verwenden (s. ):

regulären Ausdrucks
Eintrag auf Stackoverflow
Select variables that match a pattern — starts_with
Subset columns using their names and types — select
5 Data transformation | R for Data Science
Logo