Wie summiere ich die Spaltenwerte von data.frame?


76

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 peoplemit 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?

Antworten:


105

Sie können einfach verwenden sum(people$Weight).

sumfasst einen Vektor zusammen und people$Weightruft die Gewichtungsspalte aus Ihrem Datenrahmen ab.

Hinweis - Sie können mit eingebauter Hilfe bekommen ?sum, ?colSumsusw. (übrigens, colSumswerden Sie die Summe für jede Spalte).


2
wenn ich das mache bekomme ich : [1] NA. Ich habe mir die Daten für diese Spalte angesehen und die allerletzte Zeile hat NA. Ist das der Grund?
Benutzer

10
Ja, deshalb. Sie können die NAs ignorieren, wenn Sie möchten über sum(people$Weight,na.rm=TRUE)(Sie können über diese Option in lesen ?sum).
mathematisch.Kaffee

3

Um Werte zu summieren, müssen data.frameSie 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.rmParameter angeben :

sum(people[, 'Weight'], na.rm = TRUE)

1

Wenn Sie 'NA'-Werte in der Spalte haben, dann

sum(as.numeric(JuneData1$Account.Balance), na.rm = TRUE)

1

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.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.