Ich habe einen Datenrahmen mit mehreren Spalten; einige numerische und einige Zeichen. Wie berechnet man die Summe einer bestimmten Spalte? Ich habe für diese gegoogelt und ich sehe zahlreiche Funktionen ( sum
, cumsum
, rowsum
, rowSums
, colSums
, aggregate
, apply
) , aber ich kann nicht Sinn des Ganzen machen.
Angenommen, ich habe einen Datenrahmen people
mit den folgenden Spalten
people <- read(
text =
"Name Height Weight
Mary 65 110
John 70 200
Jane 64 115",
header = TRUE
)
…
Wie bekomme ich die Summe aller Gewichte?
r
dataframe
sum
aggregate-functions
Nutzer
quelle
quelle
[1] NA
. Ich habe mir die Daten für diese Spalte angesehen und die allerletzte Zeile hat NA. Ist das der Grund?sum(people$Weight,na.rm=TRUE)
(Sie können über diese Option in lesen?sum
).Um Werte zu summieren, müssen
data.frame
Sie sie zuerst als Vektor extrahieren.Es gibt verschiedene Möglichkeiten:
# $ operatior x <- people$Weight x # [1] 65 70 64
Oder mit
[, ]
Matrix ähnlich:x <- people[, 'Weight'] x # [1] 65 70 64
Sobald Sie den Vektor haben, können Sie eine beliebige Vektor-Skalar-Funktion verwenden, um das Ergebnis zu aggregieren:
sum(people[, 'Weight']) # [1] 199
Wenn Ihre Daten NA-Werte enthalten, sollten Sie folgende
na.rm
Parameter angeben :sum(people[, 'Weight'], na.rm = TRUE)
quelle
Wenn Sie 'NA'-Werte in der Spalte haben, dann
sum(as.numeric(JuneData1$Account.Balance), na.rm = TRUE)
quelle
nach dem colsum bestellen:
order(colSums(people),decreasing=TRUE)
wenn mehr als 20+ Spalten
order(colSums(people[,c(5:25)],decreasing=TRUE) ##in case of keeping the first 4 columns remaining.
quelle