2016-10-19 2 views
4

die data.table Vignette definiert die besondere Symbol als .BYWie wird der Operator R data.table `.BY` verwendet?

.BY eine Liste ist in einer Länge von 1-Vektor für jeden Artikel enthält. Dies kann nützlich sein, wenn nicht im Voraus bekannt ist. Die by-Variablen stehen auch direkt unter dem Namen j zur Verfügung; nützlich, beispielsweise für Titel von Graphen, wenn j eine Plotbefehl, oder verzweigt mit if() in Abhängigkeit vom Wert einer Gruppe veränderbar ist.

Diese Beschreibung ist verwirrend für mich. Wie und wann würde ich .BY verwenden? Auch für Titel von Graphen? Warum wurde es als besonderes Symbol hinzugefügt?

example("data.table") hat keine Beispiele, und ich habe nicht auf der data.table Wiki-Seite gefunden. Ich weiß nicht, wie man auf Stapelüberlauf für data.table und .BY Nutzungen entweder sucht. Ich bekomme immer Treffer, die den Operator by in data.table

+2

Hier ist eine etwas knifflige Verwendung von '.BY' aus einer alten Antwort von mir zu: http://stackoverflow.com/questions/25129750/data -table-Drop-key-Reihen-und-zusammenfassen/25130426 – thelatemail

+1

... und ja, ist es schwer zu suchen. Vielleicht könnte dot-BY oder etwas verwendet werden, um es einfacher zu machen. – thelatemail

+1

Verwandte: [r - Verwendung von .BY und .EACHI im data.table Paket] (http://stackoverflow.com/questions/24153174/use-of-by-and-eachi-in-the-data-table -Paket). Ihr in Bezug auf „_I weiß nicht, wie auf Stack-Überlauf für data.table und .BY_ suchen“, es ist in der Regel effizienten Google zu verwenden, anstatt aus SO dem Suchen (siehe zB [hier] (http: //meta.stackoverflow .com/Fragen/286485/Stack-Überlauf-search-Rendite-no-Ergebnisse-but-google-search-Rendite-2-000) und Links darin). Der obige Link war der zweite Treffer in meiner Google-Suche "R data.table" .BY "' '. – Henrik

Antwort

5

verwenden Hier ist ein einfaches Beispiel, das zeigt, wie .BY zu weiteren Argumenten wie einem Plot-Titel übergeben werden kann. Mit Hilfe die integrierten in mtcars Daten:

mtcars <- as.data.table(mtcars) 
layout(1:3) 
mtcars[, plot(mpg, main=paste("Cylinders:", as.character(.BY))), by=cyl] 

enter image description here

+3

In diesem speziellen Fall ist es einfach, '.BY' durch' cyl' zu ersetzen. '.BY' ist eigentlich nützlicher, wenn wir nicht im Voraus wissen, was die Gruppierungsspalte ist, so dass wir uns von' j' ausdrücken können. Ihr Beispiel könnte idealerweise in eine Funktion eingebettet sein, die eine beliebige Spalte zum Gruppieren nach sich zieht. – jangorecki

Verwandte Themen