{"id":4479,"date":"2018-04-23T17:12:18","date_gmt":"2018-04-23T16:12:18","guid":{"rendered":"https:\/\/thinkr.fr\/abcdr\/comment-recoder-les-modalites-dune-variable-qualitative\/"},"modified":"2018-04-23T19:31:49","modified_gmt":"2018-04-23T18:31:49","slug":"comment-recoder-les-modalites-dune-variable-qualitative","status":"publish","type":"post","link":"https:\/\/thinkr.fr\/abcdr\/comment-recoder-les-modalites-dune-variable-qualitative\/","title":{"rendered":"Comment recoder les modalit\u00e9s d&rsquo;une variable qualitative ?"},"content":{"rendered":"<p>Une op\u00e9ration courante quand on travaille avec des variables qualitatives (de type <code>factor<\/code> ou <code>character<\/code>) est de modifier les valeurs des modalit\u00e9s de cette variable. Ceci permet de les rendre plus courtes, plus explicites, ou m\u00eame de les regrouper si on leur attribue le m\u00eame nom.<\/p>\n<p>La fonction <code>fct_recode<\/code>, de l&rsquo;extension <code>forcats<\/code> (qui fait partie du <em>tidyverse<\/em>) facilite ce type d&rsquo;op\u00e9rations. Celle-ci prend en premier argument un vecteur, puis une s\u00e9rie de recodages sous la forme <code>Nouvelle valeur = Ancienne valeur<\/code>.<\/p>\n<p>Exemple :<\/p>\n<pre><code class=\"r\">library(forcats)\nf &lt;- c(\"Fraise\", \"Framboise\", \"Pomme\", \"Fraise\")\nf &lt;- fct_recode(f,\n                \"Ananas\" = \"Fraise\",\n                \"Poire\" = \"Pomme\")\nf\n<\/code><\/pre>\n<pre><code>[1] Ananas    Framboise Poire     Ananas   \nLevels: Ananas Framboise Poire\n<\/code><\/pre>\n<p>Pour regrouper des modalit\u00e9s il suffit de leur attribuer la m\u00eame valeur :<\/p>\n<pre><code class=\"r\"><br \/>f &lt;- c(\"Fraise\", \"Framboise\", \"Pomme\", \"Fraise\")\nf &lt;- fct_recode(f,\n                \"Fruit rouge\" = \"Fraise\",\n                \"Fruit rouge\" = \"Framboise\")\nf\n<\/code><\/pre>\n<pre><code>[1] Fruit rouge Fruit rouge Pomme       Fruit rouge\nLevels: Fruit rouge Pomme\n<\/code><\/pre>\n<p>\u00c0 noter que si on veut recoder une valeur en <code>NA<\/code>, il faut lui attribuer (de mani\u00e8re peu intuitive) la valeur <code>NULL<\/code> :<\/p>\n<pre><code class=\"r\">f &lt;- c(\"Fraise\", \"Framboise\", \"Pomme\", \"Fraise\")\nf &lt;- fct_recode(f,\n                \"Fruit rouge\" = \"Fraise\",\n                \"Fruit rouge\" = \"Framboise\",\n                NULL = \"Pomme\")\nf\n<\/code><\/pre>\n<pre><code>[1] Fruit rouge Fruit rouge &lt;NA&gt;        Fruit rouge\nLevels: Fruit rouge\n<\/code><\/pre>\n<p>\u00c0 l&rsquo;inverse, si on veut transformer des <code>NA<\/code> en une valeur explicite, on doit le faire \u00e0 l&rsquo;aide la fonction <code>fct_explicit_na<\/code> :<\/p>\n<pre><code class=\"r\">f &lt;- c(\"Fraise\", \"Framboise\", \"Pomme\", \"Fraise\", NA)\nf &lt;- fct_explicit_na(f, \"NR\")\nf\n<\/code><\/pre>\n<pre><code>[1] Fraise    Framboise Pomme     Fraise    NR       \nLevels: Fraise Framboise Pomme NR\n<\/code><\/pre>\n<p>\u00c0 noter que toutes ces op\u00e9rations sont sensibles \u00e0 la casse (majuscules\/minuscules), aux accents, aux espaces, etc. Il faut donc recopier exactement \u00e0 l&rsquo;identique les noms des anciennes valeurs.<\/p>\n<p>\u00c0 noter \u00e9galement que l&rsquo;extension <code>questionr<\/code> propose un petit <em>addin<\/em> (interface graphique ponctuelle) pour faciliter la g\u00e9n\u00e9ration du code du recodage d&rsquo;une variable qualitative.<\/p>\n<p><code>forcats<\/code> propose par ailleurs de nombreuses autres fonctions utiles pour travailler avec les variables qualitatives.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une op\u00e9ration courante quand on travaille avec des variables qualitatives (de type factor ou character) est de modifier les valeurs des modalit\u00e9s de cette variable. Ceci permet de les rendre plus courtes, plus explicites, ou m\u00eame de les regrouper si on leur attribue le m\u00eame nom. La fonction fct_recode, de l&rsquo;extension forcats (qui fait partie du tidyverse) facilite ce type d&rsquo;op\u00e9rations. Celle-ci prend en premier argument un vecteur, puis une s\u00e9rie de recodages sous la forme Nouvelle valeur = Ancienne valeur. Exemple : library(forcats) f &lt;- c(\u00ab\u00a0Fraise\u00a0\u00bb, \u00ab\u00a0Framboise\u00a0\u00bb, \u00ab\u00a0Pomme\u00a0\u00bb, \u00ab\u00a0Fraise\u00a0\u00bb) f &lt;- fct_recode(f, \u00ab\u00a0Ananas\u00a0\u00bb = \u00ab\u00a0Fraise\u00a0\u00bb, \u00ab\u00a0Poire\u00a0\u00bb = \u00ab\u00a0Pomme\u00a0\u00bb) f [1] Ananas Framboise Poire Ananas<a class=\"more-link\" href=\"https:\/\/thinkr.fr\/abcdr\/comment-recoder-les-modalites-dune-variable-qualitative\/\">Read More &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":{"twitter_399453572_399453572":""},"rop_publish_now_history":[],"rop_publish_now_status":"pending","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28,22],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-vincent","4":"post-4479","6":"format-standard","7":"category-factor","8":"category-tidyverse"},"acf":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p9O7Sx-1af","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/4479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/comments?post=4479"}],"version-history":[{"count":3,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/4479\/revisions"}],"predecessor-version":[{"id":4502,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/4479\/revisions\/4502"}],"wp:attachment":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/media?parent=4479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/categories?post=4479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/tags?post=4479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}