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 people
heb 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.
sum
somt een vector op en people$Weight
haalt de gewichtskolom op uit uw gegevensframe.
Opmerking – u kunt ingebouwde hulp krijgen door ?sum
, ?colSums
, enz. te gebruiken (tussen haakjes, colSums
zal geef je de som voor elke kolom).
Antwoord 2, autoriteit 4%
Als u waarden in data.frame
wilt 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.rm
opgeven:
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.