Umgang mit "undefined columns selected" in R

Von Fabian
Kategorie: R
Tags: Operationen
Lesezeit: 2 Minuten

    Einer der häufigsten Fehler in R ist:

    undefined columns selected

    Dieser Fehler tritt auf, wenn Sie versuchen, eine Teilmenge eines Dataframes auszuwählen und vergessen, ein Komma hinzuzufügen.

    Angenommen, wir haben das folgende Dataframe in R:

    #Dataframe mit drei Variablen erstellen
    data <- data.frame(var1 = c(0, 4, 2, 2, 5),
                       var2 = c(5, 5, 7, 8, 9),
                       var3 = c(2, 7, 9, 9, 7))
    
    #DataFrame anzeigen
    data
    
      var1 var2 var3
    1    0    5    2
    2    4    5    7
    3    2    7    9
    4    2    8    9
    5    5    9    7
    

    Angenommen, wir versuchen, alle Zeilen auszuwählen, in denen var1 größer als 3 ist:

    data[data$var1>3]
    
    Error in `[.data.frame`(data, data$var1 > 3): undefined columns selected
    

    Wir erhalten einen Fehler, weil wir vergessen haben, nach der 3 ein Komma hinzuzufügen. Sobald wir das Komma hinzugefügt haben, verschwindet der Fehler:

    data[data$var1>3, ]
    
      var1 var2 var3
    2    4    5    7
    5    5    9    7
    

    Der Grund, warum Sie ein Komma hinzufügen müssen, liegt darin, dass R die folgende Syntax für die Teilmenge des Dataframes verwendet:

    Daten [ gewünschte Zeilen, gewünschte Spalten ]

    Wenn Sie nur data [ data$var1>3 ] eingeben, weisen Sie R an, die Zeilen zurückzugeben, in denen var1>3 ist , aber Sie geben R nicht an, welche Spalten zurückgegeben werden sollen.

    Wenn Sie data [ data$var1>3 ,] verwenden , weisen Sie R an, die Zeilen mit var1> 3 und alle Spalten im Dataframe zurückzugeben. Ein äquivalenter Befehl wäre data [ data$var1>3 , 1:3 ].

    data[data$var1>3, 1:3]
    
      var1 var2 var3
    2    4    5    7
    5    5    9    7
    

    Beachten Sie, dass dieser Befehl dieselbe Teilmenge von Daten wie zuvor zurückgibt.

    Weitere R-Tutorials finden Sie hier.

    Statistik: Der Weg zur Datenanalyse

    * Amazon Affiliate Link


    Das könnte Sie auch interessieren: