So übergeben sie einen string als variablennamen in dplyr


Sie können eine der folgenden Methoden verwenden, um eine Zeichenfolge als Variablennamen in dplyr zu übergeben:

Methode 1: Verwenden Sie get()

 df %>% filter(get(my_var) == ' A ')

Methode 2: Verwenden Sie .data

 df %>% filter(. data [[my_var]] == ' A ')

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Datenrahmen verwendet wird:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#view data frame
df

  team points assists rebounds
1 A 99 33 30
2 A 90 28 28
3 A 86 31 24
4 B 88 39 24
5 B 95 34 28

Beispiel 1: Übergeben Sie mit get() einen String als Variablennamen in dplyr

Wenn wir versuchen, einen Datenrahmen zu filtern, indem wir einen String als Variablennamen an die Funktion filter() in dplyr übergeben, erhalten wir einen leeren Datenrahmen:

 library (dplyr)

#define variable
my_var <- ' team '

#attempt to filter for rows where team is equal to a variable
df %>% filter(my_var == ' A ')

[1] team points assists rebounds
<0 rows> (or 0-length row.names)

Eine Möglichkeit, dies zu umgehen, besteht darin, den Variablennamen in die Funktion get() einzuschließen:

 library (dplyr)

#define variable
my_var <- ' team '

#filter for rows where team is equal to a variable
df %>% filter(get(my_var) == ' A ')

  team points assists rebounds
1 A 99 33 30
2 A 90 28 28
3 A 86 31 24

Mit der Funktion get() in der Funktion filter() können wir die Zeilen des Datenrahmens nur nach Zeilen erfolgreich filtern, bei denen das Team gleich A ist.

Beispiel 2: Übergeben Sie einen String als Variablennamen in dplyr mit .data

Eine andere Möglichkeit, einen String als Variablennamen an die Funktion filter() in dplyr zu übergeben, besteht darin, die Funktion .data wie folgt zu verwenden:

 library (dplyr)

#define variable
my_var <- ' team '

#filter for rows where team is equal to a variable
df %>% filter(. data [[my_var]] == ' A ')

  team points assists rebounds
1 A 99 33 30
2 A 90 28 28
3 A 86 31 24

Mit der Funktion .data in der Funktion filter() können wir die Zeilen im Datenrahmen nur nach Zeilen erfolgreich filtern, bei denen das Team gleich A ist.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in dplyr ausführen:

So wählen Sie mit dplyr die erste Zeile nach Gruppe aus
So filtern Sie mit dplyr nach mehreren Bedingungen
So filtern Sie Zeilen, die eine bestimmte Zeichenfolge enthalten, mit dplyr

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert