2017-04-15 4 views
2

Bis jetzt habe ich nur Lösungen für Maximum für eine Spalte in mehreren Datenrahmen in einer Liste gefunden.Max/Min Werte aus einer Liste von DataFrames ohne Schleife

Ich habe Datenrahmen df1, df2, df3, ..., dfn in einer Liste dfList gespeichert, und ich will das Maximum der Spalte df_$afür jeden Datenrahmen erhalten. Das bedeutet z.B. ein Vektor maxList = c(max_a_df1, max_a_df2, max_a_df3, ... , max_a_dfn).

ich weiß, dass

max(dfList[[1]]$a) 

mir den Maximalwert der Spalte gibt a von df1 und ich weiß, dass ich konnte Schleife über die dfList und das entsprechende Maximum zu einem vecotor hinzuzufügen.

Aber vielleicht gibt es eine andere Möglichkeit, diese Operation ohne Verwendung einer Schleife zu implementieren?

+2

'lapply (dfList, Funktion (df) max (df $ a)) '? – digEmAll

Antwort

1

Wir können sapply eine Schleife durch die list Elemente verwenden, extrahieren Sie die Spalte 'a' und erhalten die max Wert als vector

sapply(dfList, function(x) max(x$a, na.rm=TRUE)) 
+1

Genau dieser einfache Ausdruck, nach dem ich gesucht habe. Vielen Dank! – team17

+1

@ team17 Wenn Sie 'max/min' benötigen, verwenden Sie' range', dh. 'sapply (dfList, Funktion (x) Bereich (x $ a))' – akrun

+2

Vielen Dank für den hilfreichen Tipp. Wie meine Frage lässt heraus ich bin neu zu R und sollte sich die Grundlagen genauer ansehen ^^ – team17

Verwandte Themen