Programmation avec R Faire des choix

Écrire des déclarations conditionnelles avec if et else.

Évaluer correctement les expressions contenant - ( « et ») et | ('ou').

Nos leçons précédentes nous ont montré comment manipuler les données, définir nos propres fonctions, et répéter les choses. Cependant, les programmes que nous avons écrit à ce jour font toujours les mêmes choses, quelles que soient les données qu'ils sont donnés. Nous voulons que les programmes de faire des choix en fonction des valeurs qu'ils triturent.

Enregistrement Parcelles à un fichier

Et construit également la fonction analyze_all pour automatiser le traitement de chaque fichier de données:

Voici comment nous pouvons sauver les trois parcelles des premières données d'inflammation posées dans un fichier pdf:

La fonction pdf redirige toutes les parcelles générées par R dans un fichier pdf, qui, dans ce cas, nous avons appelé « l'inflammation 01.pdf ». Après nous fait générer les parcelles à enregistrer dans le fichier pdf, nous cessons R de rediriger des parcelles avec la fonction dev.off.

Parcelles écrasement

Si vous exécutez plusieurs fois pdf sans courir dev.off. vous économiserez des parcelles au dernier fichier ouvert. Cependant, vous ne serez pas en mesure d'ouvrir les fichiers PDF précédents parce que les connexions ne sont pas fermées. Pour sortir de cette situation, vous devez exécuter dev.off jusqu'à ce que toutes les connexions pdf sont fermés. Vous pouvez vérifier votre état actuel en utilisant la fonction dev.cur. Si elle dit « pdf », toutes vos parcelles sont enregistrées dans le dernier pdf spécifié. Si elle dit « périphérique null » ou « RStudioGD », les parcelles seront visualisées normalement.

Nous pouvons mettre à jour la fonction d'analyse afin qu'il enregistre toujours les parcelles dans un pdf. Mais cela rendrait plus difficile à tester de manière interactive de nouveaux changements. Il serait idéal si l'analyse ne soit enregistrer ou non les parcelles en fonction de son entrée.

conditionals

La deuxième ligne de ce code utilise une instruction if pour dire R que nous voulons faire un choix. Si le test suivant est vrai, le corps de l'if (à savoir les lignes dans les accolades sous lui) sont exécutées. Si le test est faux, le corps de l'autre est exécuté à la place. Seul l'un ou l'autre est toujours exécuté:

Dans l'exemple ci-dessus, le test num> 100 renvoie la valeur FAUX. ce qui explique pourquoi le code à l'intérieur du bloc si a sauté et le code dans l'instruction else a été exécuté à la place.

Les instructions conditionnelles ne doivent pas inclure un autre. S'il n'y a pas un, R n'a tout simplement rien si le test est faux:

Nous pouvons également enchaîner plusieurs essais ensemble quand il y a plus de deux options. Cela rend simple d'écrire une fonction qui renvoie le signe d'un nombre:

Notez que lors de la combinaison d'autre et si, dans une autre instruction if, la partie si nécessite encore une condition d'entrée directe. Ce n'est jamais le cas pour l'instruction else seule, qui est exécutée seulement si toutes les autres conditions vont non satisfaite. Notez que le test d'égalité utilise deux signes égaux, ==.

autres comparaisons

D'autres tests incluent supérieur ou égal à (> =), inférieur ou égal à ( <= ), and not equal to ( != ).

Nous pouvons également combiner des tests. Une esperluette, -. symbolise « et ». Une barre verticale, |. symbolise « ou ». - est vrai que si les deux parties sont remplies:

tandis que | est vrai si l'une partie est vraie:

Dans ce cas, « soit » moyen « ou les deux », et non « l'un ou l'autre mais pas les deux. »

Le choix Parcelles Sur la base de données

Écrire un plot_dist de fonction qui trace une boîte à moustaches si la longueur du vecteur est supérieure à un seuil spécifié et une stripchart autrement. Pour ce faire, vous allez utiliser les fonctions R boxplot et stripchart.

Programmation avec R Faire des choix

Programmation avec R Faire des choix

Au lieu histogrammes

L'un de vos collaborateurs préfère voir les distributions des grands vecteurs sous forme d'histogramme au lieu d'un boxplot. Afin de choisir entre un histogramme et un boxplot nous modifier la fonction plot_dist et ajouter un use_boxplot argument supplémentaire. Par défaut, nous établirons use_boxplot à TRUE qui va créer un boxplot lorsque le vecteur est supérieure au seuil. Lorsque use_boxplot est réglé sur FAUX. plot_dist va plutôt tracer un histogramme pour les vecteurs plus grands. Comme précédemment, si la longueur du vecteur est inférieure au seuil. plot_dist va créer un stripchart. Un histogramme est effectué avec la commande hist dans R.

Programmation avec R Faire des choix

Programmation avec R Faire des choix

Trouvez le score maximum Inflammation

Recherchez le fichier contenant le patient avec le score d'inflammation moyenne la plus élevée. Imprimer le nom du fichier, le numéro du patient (numéro de ligne) et la valeur du score d'inflammation moyenne maximale.

  1. Utilisez des variables pour stocker la moyenne maximale et le mettre à jour que vous passez par les fichiers et les patients.
  2. Vous pouvez utiliser des boucles imbriquées (une boucle est dans l'autre) de passer par les fichiers, ainsi que par les patients dans chaque fichier (chaque ligne).

Complétez le code ci-dessous:

Sauvegarde générées automatiquement Figures

Maintenant, nous pouvons utiliser d'analyser de manière interactive, comme avant,

Programmation avec R Faire des choix
Programmation avec R Faire des choix
Programmation avec R Faire des choix

mais aussi utiliser pour sauver des parcelles,

Avant d'aller plus loin, nous allons créer un répertoire des résultats pour sauver nos parcelles. Il est de bonne pratique dans des projets d'analyse de données pour enregistrer les résultats dans un répertoire distinct à partir des données et l'analyse du code. Vous pouvez créer ce répertoire en utilisant la commande shell mkdir. ou la fonction R dir.create ()

Maintenant, exécutez analyser et sauvegarder le tracé dans le répertoire des résultats,

Cela fonctionne maintenant bien quand on veut traiter un fichier de données à la fois, mais comment peut-on spécifier le fichier de sortie dans analyze_all. Nous devons faire deux choses:

  1. Remplacez le nom du fichier se terminant par « csv » avec « pdf ».
  2. Enregistrez le terrain dans le répertoire des résultats.

Pour changer l'extension « pdf », nous utiliserons la sous-fonction,

Pour ajouter le répertoire « data » au nom du fichier, utilisez la fonction file.path,