2017-08-25 2 views
-1

J'ai lu beaucoup de réponses «comment obtenir un percentile» mais je n'ai pas trouvé de solution à mon problème.Comment obtenir le centile d'une valeur donnée pour un sous-ensemble de données. Utilisation de R

J'ai un data.frame avec 3 colonnes: Fréquence cardiaque (battements par minute), Température (allant de 35 à 45 - sans décimales), Activité (allant de 1 à 15 - sans décimales).

Je voudrais ajouter une 4ème colonne avec la valeur en percentile de la fréquence cardiaque en considérant la distribution de la fréquence cardiaque caractérisée par une température donnée et une activité donnée.

Exemple: à température = 37 et l'activité = 5 une fréquence cardiaque de 60 battements par minute a un percentile de ...

#example of data frame 
n = 1000 
df <- data.frame(HeartRate = round(runif(n, 60, 100)), 
       Temperature = round(runif(n, 35, 45)), 
       Activity = round(runif(n, 1, 15))) 

Merci d'avance pour votre aide.

+0

S'il vous plaît ajouter un exemple de votre ensemble de données et voir ici https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – AntoineBic

Répondre

0

Essayez ça? S'il ne répond pas à votre objectif, veuillez fournir un échantillon de vos données & à quoi vous vous attendez à ce que la sortie ressemble.

library(dplyr) 

# generate dummy data 
n = 1000 
df <- data.frame(HeartRate = round(runif(n, 60, 100)), 
       Temperature = round(runif(n, 35, 45)), 
       Activity = round(runif(n, 1, 15))) 

df %>% group_by(Temperature, Activity) %>% 
    mutate(Percentile = percent_rank(HeartRate)) %>% 
    ungroup() 
+0

Salut! Merci! Je reçois "Erreur: impossible de trouver la fonction"%>% "" – Luc

+0

Vous aurez besoin du paquet 'dplyr'. J'ai modifié mon code. –

+0

Un grand merci! Je pense que c'est ce que je cherche mais je ne suis pas sûr à 100%. Pourriez-vous commenter ce que chaque étape fait s'il vous plaît? Merci encore – Luc