Débugger un code dans R

*Vous aimez mon blogue? Pensez à remplir ce sondage ! Merci*

Ça fait deux semaines environ que j’ai commencé la manipulation de données et les analyses pour mon dernier chapitre de thèse! La majorité de mon énergie consiste donc à écrire des codes dans R, le logiciel statistique, et à déboguer lesdits codes. Je vous ai déjà parlé de comment avoir l’air d’un pro du codage. Voici quelques autres petits trucs que j’utilise lorsqu’il y a quelque chose qui ne fonctionne pas.

1-Le format des variables

Quand une fonction qui habituellement fonctionne, ne fonctionne plus, je commence par vérifier le format de ma variable. En effet, lorsqu’on importe un fichier dans R, R attribue un format à la variable (numérique, facteur, texte…). C’est étonnant (1) le nombre de fois où j’ai essayé de faire une opération mathématique sur une variable enregistrée comme un facteur. Comment savoir sous quel format est la variable? Comment changer ce format?

a <- c(1, 2, 3, 4, 5) #Création d'un simple vecteur
is.factor(a) #Est-ce que mon vecteur est en format facteur?
>[1] FALSE
is.numeric(a) #Est-il en format numérique?
>[1] TRUE
a <- as.factor(a) #Enregitrement du vecteur sous format facteur
is.factor(a)
>[1] TRUE

ATTENTION: Soyez prudent, certaines transformation ne s'effectuent pas aussi facilement! Je viens de m'en rappeler et cette erreur peut-être coûteuse!

2-Retour à la source

Une autre chose qui m’arrive souvent, c’est d’avoir des erreurs dans mon fichier de données qui se répercutent dans les opérations que je tente de faire. Je vous recommande bien sûr de vérifier vos données avant de les analyser, mais l’expérience m’a démontré que même après vérification, il peut rester des erreurs.

3-Une étape à la fois

J’aime bien utiliser les listes dans R et les fonctions comme apply et lapply qui permettent de faire la même opération sur plusieurs vecteurs, colonnes, observations, etc. J’aime aussi écrire des fonctions pour simplifier mon code. Mais je teste toujours étape par étape sur des fichiers exemples. Et quand, malgré tout, il y a un bogue quelque part, je regarde chaque étape, une à la suite de l’autre, pour trouver la solution.

Bon, vous pourriez décider d’éviter toute forme de simplification pour éviter les bogues et erreurs. En soi, c’est une erreur! En plus d’être plus efficace, vous augmenterez vos compétences et comprendrez mieux ce que vous faites. Et c’est amusant (2).

(1) Gênant?

(2) Source : moi.