{"id":596,"date":"2011-11-09T11:28:03","date_gmt":"2011-11-09T10:28:03","guid":{"rendered":"https:\/\/abcdr.guyader.pro\/?p=596"},"modified":"2018-04-07T22:48:46","modified_gmt":"2018-04-07T21:48:46","slug":"comment-comparer-deux-series-de-valeurs-avec-r","status":"publish","type":"post","link":"https:\/\/thinkr.fr\/abcdr\/comment-comparer-deux-series-de-valeurs-avec-r\/","title":{"rendered":"Comment comparer deux s\u00e9ries de valeurs avec R ?"},"content":{"rendered":"<p>2348<br \/>\nIl est souvent utile de pouvoir comparer deux s\u00e9ries de donn\u00e9es en algorithmique. Il existe quelques fonctions qui permettent ceci :<\/p>\n<pre><code>#Prenons 2 s\u00e9ries de valeurs\n    x=c(1,5,8,6,4,9,3,8)\n    y=c(5,5,4,3,8,7,7)\n<\/code><\/pre>\n<p>La fonction union(x,y) donne un vecteur compos\u00e9 des \u00e9l\u00e9ments qui se trouvent dans x ou dans y (union de x et de y).<\/p>\n<pre><code> \n    union(x,y)  #donnera 1 5 8 6 4 9 3 7\n    union(y,x)  #donnera 5 4 3 8 7 1 6 9\n<\/code><\/pre>\n<p>NB : on obtient le m\u00eame r\u00e9sultat avec<\/p>\n<pre><code> \n    unique(c(x,y))\n<\/code><\/pre>\n<p>La fonction intersect(x,y) donne un vecteur compos\u00e9 des \u00e9l\u00e9ments qui se trouvent \u00e0 la fois dans x et dans y (intersection de x et de y).<\/p>\n<pre><code> \n     intersect(x,y)  #donnera 5 8 4 3\n     intersect(y,x)  #donnera 5 4 3 8\n<\/code><\/pre>\n<p>Le changement d&rsquo;ordre des vecteurs x et y dans ces deux fonction ci-dessus n&rsquo;affecte pas les \u00e9l\u00e9ments contenus dans les r\u00e9sultats (except\u00e9 leur ordre).<\/p>\n<p>La fonction setdiff(x,y) donne tous les \u00e9l\u00e9ments de x qui ne sont pas dans y. Attention setdiff(y,x) donnera tous les \u00e9l\u00e9ments de y qui ne sont pas dans x, donc le r\u00e9sultat ne sera pas le m\u00eame.<\/p>\n<pre><code> \n    setdiff(x,y)  #donnera 1 6 9\n    setdiff(y,x)  #donnera 7\n<\/code><\/pre>\n<p>La fonction setequal(x,y) retourne la valeur TRUE si x est le m\u00eame vecteur que y, FALSE sinon.<\/p>\n<pre><code> \n    setequal(x,y)  #donnera FALSE\n<\/code><\/pre>\n<p>La fonction is.element(x,y) retourne un vecteur de la longueur de x compos\u00e9 des valeurs TRUE si l&rsquo;\u00e9l\u00e9ment de x se trouve \u00e9galement dans y (n&rsquo;importe o\u00f9) et FALSE sinon.<\/p>\n<pre><code> \n    is.element(x,y)  #donnera FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE \n    #car les \u00e9l\u00e9ments qui sont \u00e0 la 1\u00e8re, 4\u00e8me et 6\u00e8me place dans le vecteur x (c'est-\u00e0-dire 1, 6 et 9) ne sont #pas des \u00e9l\u00e9ments de y tandis que tous les autres le sont\n    is.element(y,x)  #donnera TRUE TRUE TRUE TRUE TRUE FALSE FALSE \n    #car les 5 premiers \u00e9l\u00e9ments de y sont \u00e9galement des \u00e9l\u00e9ments de x tandis que les deux derniers ne le sont pas\n<\/code><\/pre>\n<p>Cette liste n&rsquo;est pas exhaustive. Il existe d&rsquo;autres fonctions qui peuvent servir telles que :<\/p>\n<pre><code> \n    ?all #qui permet de regarder si une condition est remplie \u00e0 chaque fois\n    all(x&lt;=y)  #renvoie TRUE si tous les \u00e9l\u00e9ments de x sont inf\u00e9rieurs ou \u00e9gaux aux \u00e9l\u00e9ments de y qui sont \u00e0 la m\u00eame place dans le vecteur --&gt; ATTENTION x et y doivent \u00eatre de m\u00eame longueur\n    ?any #qui permet de regarder si une condition est remplie sur certains \u00e9l\u00e9ments de x et y\n    any(x&lt;=y)  #renvoie TRUE si certains des \u00e9l\u00e9ments de x sont inf\u00e9rieurs ou \u00e9gaux aux \u00e9l\u00e9ments de y qui sont \u00e0 la m\u00eame place dans le vecteur --&gt; ATTENTION x et y doivent \u00eatre de m\u00eame longueur \n    #Exemples :\n    x=c(4,5,6)\n    y=c(4,6,5)\n    all(x&lt;=y)   #renvoie FALSE car l'\u00e9l\u00e9ment 3 de x (=6) est sup\u00e9rieur \u00e0 l'\u00e9l\u00e9ment 3 de y (=5)\n    any(x&lt;=y) #renvoie TRUE car les \u00e9l\u00e9ments 1 et 2 de x (=4 et 5 respectivement) sont inf\u00e9rieurs ou \u00e9gaux aux #\u00e9l\u00e9ments 1 et 2 de y (=4 et 6 respectivement)\n    all(x&gt;=y)   #renvoie FALSE car les \u00e9l\u00e9ments 1 et 2 de x (=4 et 5 respectivement) sont inf\u00e9rieurs ou \u00e9gaux aux \u00e9l\u00e9ments 1 et 2 de y (=4 et 6 respectivement) \n    any(x&gt;=y) #renvoie TRUE car  l'\u00e9l\u00e9ment 3 de x (=6) est sup\u00e9rieur \u00e0 l'\u00e9l\u00e9ment 3 de y (=5) \n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>2348 Il est souvent utile de pouvoir comparer deux s\u00e9ries de donn\u00e9es en algorithmique. Il existe quelques fonctions qui permettent ceci : #Prenons 2 s\u00e9ries de valeurs x=c(1,5,8,6,4,9,3,8) y=c(5,5,4,3,8,7,7) La fonction union(x,y) donne un vecteur compos\u00e9 des \u00e9l\u00e9ments qui se trouvent dans x ou dans y (union de x et de y). union(x,y) #donnera 1 5 8 6 4 9 3 7 union(y,x) #donnera 5 4 3 8 7 1 6 9 NB : on obtient le m\u00eame r\u00e9sultat avec unique(c(x,y)) La fonction intersect(x,y) donne un vecteur compos\u00e9 des \u00e9l\u00e9ments qui se trouvent \u00e0 la fois dans x et dans y (intersection de x et<a class=\"more-link\" href=\"https:\/\/thinkr.fr\/abcdr\/comment-comparer-deux-series-de-valeurs-avec-r\/\">Read More &rarr;<\/a><\/p>\n","protected":false},"author":5,"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":[2,4],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-benjamin","4":"post-596","6":"format-standard","7":"category-algorithmique","8":"category-base-indispensable"},"acf":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p9O7Sx-9C","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/596","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/comments?post=596"}],"version-history":[{"count":4,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/596\/revisions"}],"predecessor-version":[{"id":3928,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/596\/revisions\/3928"}],"wp:attachment":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/media?parent=596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/categories?post=596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/tags?post=596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}