Hoe data.frame kolomwaarden optellen?

Ik heb een dataframe met meerdere kolommen; sommige numeriek en sommige karakters. Hoe bereken je de som van een specifieke kolom?Ik heb hiervoor gegoogled en ik zie talloze functies (sum, cumsum, rowsum, rowSums, colSums, aggregate, apply), maar ik begrijp het niet van alles.

Stel bijvoorbeeld dat ik een dataframe peopleheb met de volgende kolommen

people <- read(
  text = 
    "Name Height Weight
    Mary 65     110
    John 70     200
    Jane 64     115", 
  header = TRUE
)
…

Hoe krijg ik de som van alle gewichten?


Antwoord 1, autoriteit 100%

Je kunt gewoon sum(people$Weight)gebruiken.

sumsomt een vector op en people$Weighthaalt de gewichtskolom op uit uw gegevensframe.

Opmerking – u kunt ingebouwde hulp krijgen door ?sum, ?colSums, enz. te gebruiken (tussen haakjes, colSumszal geef je de som voor elke kolom).


Antwoord 2, autoriteit 4%

Als u waarden in data.framewilt optellen, moet u ze eerst als vector extraheren.

Er zijn verschillende manieren om dit te doen:

# $ operatior
x <- people$Weight
x
# [1] 65 70 64

Of gebruik [, ]vergelijkbaar met matrix:

x <- people[, 'Weight']
x
# [1] 65 70 64

Zodra u de vector heeft, kunt u elke vector-naar-scalaire functie gebruiken om het resultaat te aggregeren:

sum(people[, 'Weight'])
# [1] 199

Als u NA-waarden in uw gegevens heeft, moet u de parameter na.rmopgeven:

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

Antwoord 3

Als je ‘NA’-waarden in de kolom hebt staan, dan

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

Antwoord 4

te bestellen na de colsum :

order(colSums(people),decreasing=TRUE)

indien meer dan 20+ kolommen

order(colSums(people[,c(5:25)],decreasing=TRUE) ##in case of keeping the first 4 columns remaining.

Other episodes