107 votes

Comment additionner les valeurs d'une colonne de data.frame ?

J'ai un data frame avec plusieurs colonnes; certaines numériques et d'autres de type caractère. Comment calculer la somme d'une colonne spécifique? J'ai fait des recherches sur internet et j'ai trouvé de nombreuses fonctions (sum, cumsum, rowsum, rowSums, colSums, aggregate, apply) mais je n'arrive pas à tout comprendre.

Par exemple, supposons que j'ai un data frame people avec les colonnes suivantes

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

Comment puis-je obtenir la somme de tous les poids?

132voto

mathematical.coffee Points 23150

Vous pouvez simplement utiliser sum(people$Weight).

sum additionne un vecteur, et people$Weight récupère la colonne de poids de votre data frame.

Note - vous pouvez obtenir de l'aide intégrée en utilisant ?sum, ?colSums, etc. (au fait, colSums vous donnera la somme pour chaque colonne).

12voto

Bulat Points 583

Pour additionner les valeurs dans un data.frame, vous devez d'abord les extraire en tant que vecteur.

Il existe plusieurs façons de le faire:

# opérateur $
x <- people$Weight
x
# [1] 65 70 64

Ou en utilisant [, ] similaire à une matrice:

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

Une fois que vous avez le vecteur, vous pouvez utiliser n'importe quelle fonction de vecteur à scalaire pour agréger le résultat:

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

Si vous avez des valeurs NA dans vos données, vous devez spécifier le paramètre na.rm:

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

4voto

sai saran Points 376

Pour commander après le colsum :

order(colSums(people),decreasing=TRUE)

si plus de 20+ colonnes

order(colSums(people[,c(5:25)],decreasing=TRUE) ##dans le cas où l'on conserve les 4 premières colonnes restantes.

3voto

edouard Points 424
# Créer le dataframe people
Nom <- c("Mary", "John", "Jane")
Taille <- c(65,70,64)
Poids <- c(110,200,115)
people <- data.frame(Nom, Taille, Poids)

# Assigner la somme de la colonne Poids à la variable res
res <- sum(people$Poids)

Maintenant, tapez 'res' pour obtenir votre résultat.

3voto

Dheeraj Points 91

Lorsque vous avez des valeurs 'NA' dans la colonne, alors

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X