Somme conditionnelle dans la R
J'ai un bloc de données qui est 200 lignes par 6 colonnes. Je suis intéressé dans le calcul du total de fois que la valeur du Col est inférieure à un numéro spécifique. Le nombre peut être codée en dur. Je ne sais pas par où commencer...
OriginalL'auteur Sarah Spadanuda | 2012-05-31
Vous devez vous connecter pour publier un commentaire.
De compter le nombre de valeurs sont en dessous d'un numéro que vous pouvez utiliser
?sum
OriginalL'auteur sgibb
Pour un peu plus complexe problème, utilisez le "qui" de dire la "somme" où somme:
si DF est la trame de données:
Exemple: somme des valeurs de l'énergie Solaire.R (Colonne 2) où Colonne1 ou de l'Ozone>30 ET la Colonne 4 ou Temp>90
OriginalL'auteur Theuns
Juste en utilisant la somme sur votre état de travail. Les valeurs logiques sont convertis à 0 pour FALSE et 1 pour TRUE si sommation sur une logique indique le nombre de valeurs sont VRAIES.
OriginalL'auteur Dason
Alors que la réponse
sum( df$columnA < NUMBER )
est correcte, il peut être préférable de développer un peu.Dire si vous souhaitez faire la somme des valeurs, au lieu de compter, vous pouvez utiliser:
sum(df[df$columnA < Number,]$columnA)
Ou si il y a
NA
valeurs d'utilisation:sum(df[df$columnA < Number,]$columnA, na.rm=TRUE)
sum(df[(df$columnA < Number)&(!is.na(df$columnA)),]$columnA)
Essentiellement ce qui se passe, c'est que vous créez un booléen vecteur de columnA qui a TRUE/FALSE en fonction de votre conditionnelle. Ensuite, vous prenez un sous-ensemble de l'original dataframe et de l'utiliser dans ce cas de faire la sommation de columnA.
Voici un exemple que vous pouvez utiliser pour l'essayer:
OriginalL'auteur TeemuK
Ozone | Solaire.R | Le Vent | Temp | Mois | Jour
1 41 | 190 | 7.4 | 67 | 5 | 1
2 97 | 267 | 6.3 | 92 | 7 | 8
3 97 | 272 | 5.7 | 92 | 7 | 9
[1] 84
OriginalL'auteur anaconda