2016-05-11 1 views

Antwort

2

der Suche nach Hinweisen auf everything in ?select, sie ein Beispiel für die Verwendung zum Neuordnen Spalten haben:

# Reorder variables: keep the variable "Species" in the front 
select(iris, Species, everything()) 

In diesem Fall wird die Species Spalte zur ersten Spalte bewegt wird, werden alle Spalten gehalten, und es werden keine Spalten dupliziert.

Es ist möglich, dass auch andere Anwendungsfälle existieren.

0

Ein weiteres Beispiel Anwendungsfall:

# Moves the variable Petal.Length to the end 
select(iris, -Petal.Length, everything()) 

(ich es hier gesehen: https://stackoverflow.com/a/30472217/4663008)

So oder so, Gregor Antwort und meine sind verwirrend zu mir - ich hätte erwartet, dass Arten in Gregors dupliziert werden Beispiel oder in meinem Beispiel entfernt.

Wenn Sie etwas komplizierter, basierend auf den beiden vorangegangenen Beispielen versuchen, funktioniert es nicht:

> dplyr::select(iris, Petal.Width, -Petal.Length, everything()) 
    Petal.Width Sepal.Length Sepal.Width Petal.Length Species 
1   0.2   5.1   3.5   1.4  setosa 
2   0.2   4.9   3.0   1.4  setosa 
3   0.2   4.7   3.2   1.3  setosa 

Edit: Nach einem schnellen response von Hadley auf Github, fand ich heraus, dass es eine besondere ist behaviour using everything() kombiniert mit einem negativen in der ersten Position in select(), das select() off mit allen Variablen startet und dann alles() wieder zurückzieht. Eine negative Variable in nicht-ersten Positionen funktioniert nicht wie erwartet.

Ich bin damit einverstanden, dass die negative Variable in der ersten Position und der alles() select_helper Funktion besser in der Dokumentation erklärt benötigt

Edit 2: Die Dokumentation ist jetzt in den Zustand „Positive Werte wählen Variablen aktualisiert, negative Werte zum Löschen von Variablen. Wenn der erste Ausdruck negativ ist, wird() automatisch mit allen Variablen beginnen. "