{"id":1128,"date":"2011-12-23T09:59:14","date_gmt":"2011-12-23T08:59:14","guid":{"rendered":"https:\/\/abcdr.guyader.pro\/?p=1128"},"modified":"2018-04-08T00:00:34","modified_gmt":"2018-04-07T23:00:34","slug":"comment-utiliser-apply-dans-r","status":"publish","type":"post","link":"https:\/\/thinkr.fr\/abcdr\/comment-utiliser-apply-dans-r\/","title":{"rendered":"Comment utiliser apply dans R ?"},"content":{"rendered":"<p>R n&rsquo;aime pas les boucles: c&rsquo;est long, parfois ca plante..mais surtout c&rsquo;est long :).<\/p>\n<p>Une des fonctions qu&rsquo;il faut absolument ma\u00eetriser est <strong>apply<\/strong>. Elle permet de r\u00e9aliser en parall\u00e8le la m\u00eame op\u00e9ration sur toutes les lignes\/ toutes les colonnes d&rsquo;une matrice ou d &lsquo;un jeu de donn\u00e9es.<\/p>\n<p>Pour utiliser <strong>apply<\/strong>, il faut <\/p>\n<ul>\n<li>cr\u00e9er une fonction qui prend en param\u00e8tre un vecteur et qui nous ressort une transformation de ce vecteur.<\/li>\n<li>que ce vecteur soit de la forme qu&rsquo;une ligne ou qu&rsquo;une colonne de notre jeu de donn\u00e9es (prendre en compte les variables quali, l&rsquo;ordre des variables..)<\/li>\n<li>lancer apply sur son jeu de donn\u00e9es, en pr\u00e9cisant la fonction et s&rsquo;il faut le prendre en ligne ou en colonne.<\/li>\n<\/ul>\n<pre><code><br \/> data(iris)<br \/># on va fabriquer une fonction qui, pour chaque ligne, nous donnera la somme de Sepal.Length, Sepal.Width, Petal.Length et Petal.Width<br \/><br \/>masomme&lt;-function(monvec){<br \/># les vecteurs sont ici de la forme c(5.1,3.5,1.4,0.2, setosa). Un simple sum(monec) ne fonctionnerait pas \u00e0 cause de setosa<br \/>return(sum(as.numeric(monvec[1:4])))# le as.numeric permet de passer outre la transformation en caract\u00e8res<br \/>}<br \/>lasomme&lt;-apply(data.frame(iris),FUN=masomme,MARGIN=1)<br \/>head(cbind(iris,lasomme))# on rajoute une colonne avec le r\u00e9sultat et on regarde le d\u00e9but du jeu de donn\u00e9es <br \/><br \/><br \/><\/code><\/pre>\n<p>Cette transformation restera tr\u00e8s rapide m\u00eame avec un tr\u00e8s grand nombre de lignes<\/p>\n","protected":false},"excerpt":{"rendered":"<p>R n&rsquo;aime pas les boucles: c&rsquo;est long, parfois ca plante..mais surtout c&rsquo;est long :). Une des fonctions qu&rsquo;il faut absolument ma\u00eetriser est apply. Elle permet de r\u00e9aliser en parall\u00e8le la m\u00eame op\u00e9ration sur toutes les lignes\/ toutes les colonnes d&rsquo;une matrice ou d &lsquo;un jeu de donn\u00e9es. Pour utiliser apply, il faut cr\u00e9er une fonction qui prend en param\u00e8tre un vecteur et qui nous ressort une transformation de ce vecteur. que ce vecteur soit de la forme qu&rsquo;une ligne ou qu&rsquo;une colonne de notre jeu de donn\u00e9es (prendre en compte les variables quali, l&rsquo;ordre des variables..) lancer apply sur son jeu de donn\u00e9es, en pr\u00e9cisant<a class=\"more-link\" href=\"https:\/\/thinkr.fr\/abcdr\/comment-utiliser-apply-dans-r\/\">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":[4,8,12,23],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-vincent","4":"post-1128","6":"format-standard","7":"category-base-indispensable","8":"category-fonctions-utiles","9":"category-manipulation-de-donnees","10":"category-transformation-de-donnees"},"acf":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p9O7Sx-ic","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/1128","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=1128"}],"version-history":[{"count":2,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/1128\/revisions"}],"predecessor-version":[{"id":4195,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/1128\/revisions\/4195"}],"wp:attachment":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/media?parent=1128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/categories?post=1128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/tags?post=1128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}