Gruppierungsfunktionen (tapply, by, aggregate) und die * apply-Familie

Immer, wenn ich etwas tun möchte "Karte"py in R, ich in der Regel versuchen, eine Funktion in der apply Familie.

Allerdings habe ich nie ganz verstanden, die Unterschiede zwischen Ihnen -- wie { sapply , lapply etc.} die Funktion anwenden, um die input - /grouped input, was der output Aussehen wird, oder auch, was die Eingabe kann -- so oft ich nur durch Sie gehen, bis ich das bekomme, was ich will.

Kann mir jemand erklären, wie man die ein???

Meine aktuelle (wohl falschen/unvollständigen) Verständnis...

  1. sapply(vec, f): Eingabe ist ein Vektor. Ausgabe ist ein Vektor/matrix ist, wo das element i ist f(vec[i]) ist, geben Sie eine matrix an, wenn f hat eine multi-element-Ausgabe
  2. lapply(vec, f): wie sapplyaber die Ausgabe ist eine Liste?
  3. apply(matrix, 1/2, f): Eingabe einer matrix. Ausgabe ist ein Vektor, wo element i ist f(row/col i der matrix)
  4. tapply(vector, grouping, f): output ist eine matrix/array, wo ein element in der matrix/array ist der Wert von f bei einer Gruppierung g des Vektors, und g wird geschoben, um die row/col Namen
  5. by(dataframe, grouping, f): lassen Sie g eine Gruppierung. gelten f auf jede Säule in der Gruppe/dataframe. pretty-print die Gruppierung, und der Wert von f bei jeder Spalte.
  6. aggregate(matrix, grouping, f): ähnlich bysondern von ziemlich drucken Sie die Ausgabe -, Aggregat-sticks alles zu einem dataframe.

Zwischenfrage: ich habe noch nicht gelernt plyr oder umgestalten-würde plyr oder reshape ersetzen alle diese ganz?

InformationsquelleAutor der Frage grautur | 2010-08-17

Schreibe einen Kommentar