{"id":304698,"date":"2020-06-02T09:01:35","date_gmt":"2020-06-02T09:01:35","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=304698"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=304698","title":{"rendered":"dplyr 1.0.0 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043d\u0430 CRAN: \u0412\u0438\u0434\u0435\u043e \u043e\u0431\u0437\u043e\u0440 \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u0432 \u043d\u0451\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/501028\/\">\n<p><code>dplyr<\/code> \u2014 R \u043f\u0430\u043a\u0435\u0442, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0443 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0433\u043b\u0430\u0433\u043e\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 R.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0438\u0437 CRAN \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u043c \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u0432 \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0430\u0443\u043a\u0438 \u043e \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ej\/ta\/wj\/ejtawj7lbl16cxb7bntmw9swwpe.jpeg\"><\/p>\n<p>  <\/p>\n<p>\u0425\u0435\u0434\u043b\u0438 \u0412\u0438\u043a\u0445\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u0434 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c <code>dplyr<\/code> \u0441 2014 \u0433\u043e\u0434\u0430, <code>dplyr<\/code> \u044d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u043e\u043a <code>plyr<\/code>, \u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u0438\u0437\u044f\u0449\u043d\u044b\u0439 \u043f\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0443. \u0417\u0430 6 \u043b\u0435\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b <code>dplyr<\/code> \u0443\u0441\u0442\u0430\u043a\u0430\u043d\u0438\u043b\u0441\u044f, \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0447\u0435\u043c 29 \u043c\u0430\u044f \u0431\u044b\u043b <a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/06\/dplyr-1-0-0\/\" rel=\"nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u0432\u0435\u0440\u0441\u0438\u0438 1.0.0<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0417\u0430 6 \u043d\u0435\u0434\u0435\u043b\u044c \u0434\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u0412\u0438\u043a\u0445\u0435\u043c \u043d\u0430\u0447\u0430\u043b \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439, \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 <code>dplyr<\/code> \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0433\u0440\u044f\u0434\u0443\u0449\u0438\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044f, \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u0443\u044f \u0442\u0443\u0436\u0435 \u0446\u0435\u043b\u044c, \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u0441\u043d\u0438\u043c\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u043e\u0431\u0437\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438 \u0445\u043e\u0442\u0435\u043b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f. <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 <code>dplyr<\/code> 1.0.0.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h1 id=\"soderzhanie\">\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p><em>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0435\u0441\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043c\u043e\u0438 <a href=\"https:\/\/t.me\/R4marketing\" rel=\"nofollow\">telegram<\/a> \u0438 <a href=\"https:\/\/www.youtube.com\/R4marketing\/?sub_confirmation=1\" rel=\"nofollow\">youtube<\/a> \u043a\u0430\u043d\u0430\u043b\u044b. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u044b \u044f\u0437\u044b\u043a\u0443 R.<\/em><\/p>\n<p>  <\/p>\n<ol>\n<li><a href=\"#ssylki\">\u0421\u0441\u044b\u043b\u043a\u0438<\/a><\/li>\n<li><a href=\"#ustanovka-dplyr-100\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 dplyr 1.0.0<\/a><\/li>\n<li><a href=\"#obzor-novogo-funkcionala-dplyr-100\">\u041e\u0431\u0437\u043e\u0440 \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 dplyr 1.0.0<\/a><br \/>  3.1. <a href=\"#obnovlyonnaya-funkciya-summarise\">\u041e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f summarise()<\/a><br \/>  3.2. <a href=\"#funkcii-select-rename_with-relocate\">\u0424\u0443\u043d\u043a\u0446\u0438\u0438 select(), rename_with(), relocate()<\/a><br \/>  3.3. <a href=\"#obraschenie-k-stolbcam-funkciey-accros\">\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 accros()<\/a><br \/>  3.4. <a href=\"#perebor-strok-funkciey-rowwise\">\u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 rowwise()<\/a><br \/>  3.5. <a href=\"#dobavlenie-izmenenie-udalenie-strok-s-pomoschyu-funkciy-semeystva-rows_\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 rows_*()<\/a><\/li>\n<li><a href=\"#zaklyuchenie\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/li>\n<\/ol>\n<p>  <\/p>\n<h1 id=\"ssylki\">\u0421\u0441\u044b\u043b\u043a\u0438<\/h1>\n<p>  <\/p>\n<ol>\n<li>\u0421\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043d\u044f\u0442\u044b \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u0437\u043e\u0440\u044b<br \/>  1.1. <a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/03\/dplyr-1-0-0-summarise\/\" rel=\"nofollow\">dplyr 1.0.0: new summarise() features<\/a>, <em>Hadley Wickham (\u0430\u043d\u0433\u043b.)<\/em><br \/>  1.2. <a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/03\/dplyr-1-0-0-select-rename-relocate\/\" rel=\"nofollow\">dplyr 1.0.0: select, rename, relocate<\/a>, <em>Hadley Wickham (\u0430\u043d\u0433\u043b.)<\/em><br \/>  1.3. <a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/04\/dplyr-1-0-0-colwise\/\" rel=\"nofollow\">dplyr 1.0.0: working across columns<\/a>, <em>Hadley Wickham (\u0430\u043d\u0433\u043b.)<\/em><br \/>  1.4. <a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/04\/dplyr-1-0-0-rowwise\/\" rel=\"nofollow\">dplyr 1.0.0: working within rows<\/a>, <em>Hadley Wickham (\u0430\u043d\u0433\u043b.)<\/em><br \/>  1.5. <a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/05\/dplyr-1-0-0-last-minute-additions\/\" rel=\"nofollow\">dplyr 1.0.0: last minute additions<\/a>, <em>Hadley Wickham, Kirill M\u00fcller (\u0430\u043d\u0433\u043b.)<\/em><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/playlist?list=PLD2LDq8edf4qETNK0JPCjtsoQ7lq9BBV1\" rel=\"nofollow\">\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442<\/a> \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u0431\u0437\u043e\u0440\u0430\u043c\u0438 \u043d\u0430 YouTube<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/R4marketing\/?sub_confirmation=1\" rel=\"nofollow\">\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f<\/a> \u043d\u0430 YouTube \u043a\u0430\u043d\u0430\u043b<\/li>\n<li>\u041c\u043e\u0439 <a href=\"https:\/\/t.me\/R4marketing\" rel=\"nofollow\">telegram \u043a\u0430\u043d\u0430\u043b<\/a><\/li>\n<li><a href=\"https:\/\/dplyr.tidyverse.org\/\" rel=\"nofollow\">\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430<\/a> \u043f\u0430\u043a\u0435\u0442\u0430 dplyr<\/li>\n<\/ol>\n<p>  <\/p>\n<h1 id=\"ustanovka-dplyr-100\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 dplyr 1.0.0<\/h1>\n<p>  <\/p>\n<p>\u0422.\u043a. <code>dplyr 1.0.0<\/code> \u0443\u0436\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043d\u0430 CRAN \u0434\u043b\u044f \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \/ \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>install.packages('dplyr')<\/code>.<\/p>\n<p>  <\/p>\n<h1 id=\"obzor-novogo-funkcionala-dplyr-100\">\u041e\u0431\u0437\u043e\u0440 \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 dplyr 1.0.0<\/h1>\n<p>  <\/p>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b 5 \u0432\u0438\u0434\u0435\u043e \u043e\u0431\u0437\u043e\u0440\u043e\u0432 \u0441\u043d\u044f\u0442\u044b\u0445 \u043f\u043e \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u0425\u0435\u0434\u043b\u0438 \u0412\u0438\u043a\u0445\u0435\u043c\u0430. <\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 10 \u0434\u043e 17 \u043c\u0438\u043d\u0443\u0442.<\/p>\n<p>  <\/p>\n<h3 id=\"obnovlyonnaya-funkciya-summarise\">\u041e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f summarise()<\/h3>\n<p>  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/4RNBDDui6Yw?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\" allow=\"encrypted-media; accelerometer; gyroscope; picture-in-picture\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p><code>summarise()<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 <code>dplyr<\/code>, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 1.0.0 \u0435\u0451 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u044b\u043b\u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u044b. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 \u0432\u0438\u0434\u0435\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">#devtools::install_github(&quot;tidyverse\/dplyr&quot;) library(dplyr)  # \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f ## \u0442\u0435\u043f\u0435\u0440\u044c sunnarise \u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c ### \u0432\u0435\u043a\u0442\u043e\u0440 \u043b\u044e\u0431\u043e\u0439 \u0434\u043b\u0438\u043d\u043d\u044b ### \u0434\u0430\u0442\u0430 \u0444\u0440\u0435\u0439\u043c \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438  # ####################################################### # \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 # ####################################################### df &lt;- tibble(   grp = rep(1:2, each = 5),    x = c(rnorm(5, -0.25, 1), rnorm(5, 0, 1.5)),   y = c(rnorm(5, 0.25, 1), rnorm(5, 0, 0.5)), )  df  # \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b # \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0438 df %&gt;%    group_by(grp) %&gt;%    summarise(rng = range(x))  ## \u0444\u0443\u043d\u043a\u0446\u0438\u044f range \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u0434\u043b\u0438\u043d\u043d\u044b 2 range(df$x) ## \u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f summarise \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0433\u043e,  ## \u043f\u0440\u0438\u0432\u043e\u0434\u044f \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443  # \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 df %&gt;%    group_by(grp) %&gt;%    summarise(tibble(min = min(x), mean = mean(x)))  # ####################################################### # \u0420\u0430\u0441\u0447\u0451\u0442 \u043a\u0432\u0430\u043d\u0442\u0438\u043b\u0435\u0439 # ####################################################### df %&gt;%    group_by(grp) %&gt;%    summarise(x = quantile(x, c(0.25, 0.5, 0.75)), q = c(0.25, 0.5, 0.75))  # \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043a\u0432\u0430\u043d\u0442\u0438\u043b\u044f quibble &lt;- function(x, q = c(0.25, 0.5, 0.75)) {   tibble(x = quantile(x, q), q = q) } # \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 summarise df %&gt;%    group_by(grp) %&gt;%    summarise(quibble(x, c(0.25, 0.5, 0.75)))  # \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c  # \u0447\u0442\u043e \u0431\u044b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0438\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0430 quibble2 &lt;- function(x, q = c(0.25, 0.5, 0.75)) {   tibble(&quot;{{ x }}&quot; := quantile(x, q), &quot;{{ x }}_q&quot; := q) }  df %&gt;%    group_by(grp) %&gt;%    summarise(quibble2(x, c(0.25, 0.5, 0.75)))  # \u043c\u044b \u043d\u0435 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043b\u0438 \u0438\u043c\u0435\u043d\u0430 \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 summarise # \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0441\u0442\u0443\u0440\u043a\u0442\u0443\u0440\u044b # \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u0442\u0430 \u0444\u0440\u0435\u0439\u043c\u044b out &lt;- df %&gt;%    group_by(grp) %&gt;%    summarise(quantile = quibble2(y, c(0.25, 0.75)))  str(out)  # \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0444\u0440\u0435\u0439\u043c\u0443 out$y  # \u0438\u043b\u0438 \u043a \u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c # \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 \u0442\u0430\u043a\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043e\u0431\u044a\u044f\u0434\u0435\u043d\u0451\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0441\u0442\u043e\u0431\u0446\u043e\u0432 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 out$quantile$y_q  # summarise + rowwise # \u044d\u0442\u0430 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c purrr \u0438 apply tibble(path = dir(pattern = &quot;\\\\.csv$&quot;)) %&gt;%    rowwise(path) %&gt;%    summarise(readr::read_csv(path))  # ####################################################### # \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b # ####################################################### # \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043a\u0432\u0430\u043d\u0442\u0438\u043b\u0438 df %&gt;%    group_by(grp) %&gt;%    summarise(y = list(quibble(y, c(0.25, 0.75)))) %&gt;%    tidyr::unnest(y)  df %&gt;%    group_by(grp) %&gt;%    do(quibble(.$y, c(0.25, 0.75)))<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u0441\u044b\u043b\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/03\/dplyr-1-0-0-summarise\/\" rel=\"nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/selesnow\/publications\/blob\/master\/code_example\/dplyr-1-0-0\/dplyr_1.0.0_-_new_summarise.R\" rel=\"nofollow\">\u041a\u043e\u0434 \u043d\u0430 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=4RNBDDui6Yw&amp;list=PLD2LDq8edf4qETNK0JPCjtsoQ7lq9BBV1&amp;index=5\" rel=\"nofollow\">\u0412\u0438\u0434\u0435\u043e \u043d\u0430 YouTube<\/a><\/li>\n<\/ul>\n<\/div><\/div>\n<p>  <\/p>\n<h3 id=\"funkcii-select-rename_with-relocate\">\u0424\u0443\u043d\u043a\u0446\u0438\u0438 select(), rename_with(), relocate()<\/h3>\n<p>  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/k4v5cfLuUAQ?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\" allow=\"encrypted-media; accelerometer; gyroscope; picture-in-picture\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0412 \u0432\u0438\u0434\u0435\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c, \u0438\u043b\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u0434\u0430\u0442\u0430 \u0444\u0440\u0435\u0439\u043c\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435: <code>select()<\/code>, <code>rename_with()<\/code>, <code>relocate()<\/code>, <code>any_of()<\/code>, <code>all_of()<\/code>.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 \u0432\u0438\u0434\u0435\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">#devtools::install_github(&quot;tidyverse\/dplyr&quot;) library(dplyr, warn.conflicts = FALSE)  # rename # \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0445 \u0438\u043c\u0451\u043d df1 &lt;- tibble(a = 1:5, a = 5:1, .name_repair = &quot;minimal&quot;) df1  df1 %&gt;% rename(b = 2)  # select # \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u043f\u043e \u0442\u0438\u043f\u0443 df2 &lt;- tibble(x1 = 1, x2 = &quot;a&quot;, x3 = 2, y1 = &quot;b&quot;, y2 = 3, y3 = &quot;c&quot;, y4 = 4)  # \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b df2 %&gt;% select(is.numeric) # \u041d\u0415 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b df2 %&gt;% select(!is.character)  # \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f # \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0441\u0442\u043e\u0431\u0446\u044b, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0430 X df2 %&gt;% select(starts_with(&quot;x&quot;) &amp; is.numeric)  # \u0432\u044b\u0431\u043e\u0440 \u043f\u043e\u043b\u0435\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 any_of \u0438 all_of vars &lt;- c(&quot;x1&quot;, &quot;x2&quot;, &quot;y1&quot;, &quot;z&quot;) df2 %&gt;% select(any_of(vars))  df2 %&gt;% select(all_of(vars))  # \u0444\u0443\u043d\u043a\u0446\u0438\u044f rename_with df2 %&gt;% rename_with(toupper)  df2 %&gt;% rename_with(toupper, starts_with(&quot;x&quot;))  df2 %&gt;% rename_with(toupper, is.numeric)  # relocate \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0441\u0442\u043e\u0431\u0446\u043e\u0432 df3 &lt;- tibble(w = 0, x = 1, y = &quot;a&quot;, z = &quot;b&quot;) # \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b y, z \u0432 \u043d\u0430\u0447\u0430\u043b\u043e df3 %&gt;% relocate(y, z) # \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432\u043d\u0430\u0447\u0430\u043b\u043e df3 %&gt;% relocate(is.character)  # \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 w \u043f\u043e\u0441\u043b\u0435 y df3 %&gt;% relocate(w, .after = y) # \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 w \u043f\u0435\u0440\u0435\u0434 y df3 %&gt;% relocate(w, .before = y) # \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c w \u0432 \u043a\u043e\u043d\u0435\u0446 df3 %&gt;% relocate(w, .after = last_col())<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u0441\u044b\u043b\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/03\/dplyr-1-0-0-select-rename-relocate\/\" rel=\"nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/selesnow\/publications\/blob\/master\/code_example\/dplyr-1-0-0\/dplyr_1-0-0_select-relocate-rename_with.R\" rel=\"nofollow\">\u041a\u043e\u0434 \u043d\u0430 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=k4v5cfLuUAQ&amp;list=PLD2LDq8edf4qETNK0JPCjtsoQ7lq9BBV1&amp;index=4\" rel=\"nofollow\">\u0412\u0438\u0434\u0435\u043e \u043d\u0430 YouTube<\/a><\/li>\n<\/ul>\n<\/div><\/div>\n<p>  <\/p>\n<h3 id=\"obraschenie-k-stolbcam-funkciey-accros\">\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 accros()<\/h3>\n<p>  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/J5tZpx_JxWk?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\" allow=\"encrypted-media; accelerometer; gyroscope; picture-in-picture\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p><code>accros()<\/code> \u044d\u0442\u043e \u043d\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 <code>dplyr<\/code>, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0430\u044f \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u0441 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430\u043c\u0438 <code>*_at()<\/code>, <code>*_if()<\/code>, <code>*_all()<\/code>. \u0422.\u0435. <code>accros()<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0443\u044e \u043b\u0438\u0431\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043a \u043d\u0430\u0431\u043e\u0440\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u043d\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u044f \u0432\u0441\u0435 \u0438\u0445 \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 \u0432\u0438\u0434\u0435\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\"># devtools::install_github(&quot;tidyverse\/dplyr&quot;) library(dplyr, warn.conflicts = FALSE)  # \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0434\u0430\u0442\u0430 \u0444\u0440\u0435\u0439\u043c df &lt;- tibble(g1 = as.factor(sample(letters[1:4],size = 10, replace = T )),              g2 = as.factor(sample(LETTERS[1:3],size = 10, replace = T )),              a  = runif(10, 1, 10),              b  = runif(10, 10, 20),              c  = runif(10, 15, 30),              d  = runif(10, 1, 50))  # \u043e \u0447\u0451\u043c \u043f\u043e\u0439\u0434\u0451\u0442 \u0440\u0435\u0447\u044c ## \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f  ## \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443\u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 df %&gt;%    group_by(g1, g2) %&gt;%    summarise(a = mean(a), b = mean(b), c = mean(c), d = mean(c))  # \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 ## \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e ## \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0447\u0442\u043e \u0438 \u0432 select() ### \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u043e\u0442 a \u0434\u043e d df %&gt;%    group_by(g1, g2) %&gt;%    summarise(across(a:d, mean))  ### \u0438\u043b\u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u044b\u0431\u0440\u0430\u0432 \u0432\u0441\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b  df %&gt;%    group_by(g1, g2) %&gt;%    summarise(across(is.numeric, mean))  # ############################## # \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 # \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 accros  ## .cols - \u0432\u044b\u0431\u043e\u0440 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043f\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0438\u043c\u0435\u043d\u0438, \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439, \u0442\u0438\u043f\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u043b\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u044f \u043b\u044e\u0431\u044b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b ## .fns - \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0443  ## \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u043b\u0430\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044f\u0445 starwars %&gt;%    summarise(across(is.character, n_distinct))  ## \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 starwars %&gt;%    group_by(species) %&gt;%    filter(n() &gt; 1) %&gt;%    summarise(across(c(sex, gender, homeworld), n_distinct))  ## \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u043c accross \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c\u0438 starwars %&gt;%    group_by(homeworld) %&gt;%    filter(n() &gt; 1) %&gt;%    summarise(across(is.numeric, mean, na.rm = TRUE),              n = n())  # ############################## # \u0427\u0435\u043c accross \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441 \u0441\u0443\u0444\u0438\u043a\u0441\u0430\u043c\u0438 _at, _if, _all  ## 1. accross \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 summarise  ## \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438 df %&gt;%   group_by(g1, g2) %&gt;%    summarise(     across(is.numeric, mean),      across(is.factor, nlevels),     n = n(),    )  ## \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 starwars %&gt;%    group_by(species) %&gt;%    summarise(across(is.character, n_distinct),              across(is.numeric, mean),              across(is.list, length),              n = n()   )  ## 2. \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 dplyr, \u0447\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0438\u0445 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 ## 3. \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441 \u0441\u0443\u0444\u0438\u043a\u0441\u0430\u043c\u0438 if_, at_, \u0438 \u0434\u0430\u0451\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 ## 4. accross \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442 \u0432\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 vars \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043b\u0432, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u044c\u0448\u0435  # ############################## # \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0430 accross  ## \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441 \u0441\u0443\u0444\u0438\u043a\u0441\u0430\u043c\u0438 _at, _if, _all \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 ### \u0432 accross \u043f\u0435\u0440\u0432\u044b\u043c \u0430\u0433\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442: ### \u0414\u043b\u044f *_if() \u0441\u0442\u0430\u0440\u044b\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442. ### \u0414\u043b\u044f *_at() \u0441\u0442\u0430\u0440\u044b\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0437\u043e\u0432\u043e\u043c vars(). ### \u0414\u043b\u044f *_all(), \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e everything()  ## \u043f\u0440\u0438\u043c\u0435\u0440\u044b df &lt;- tibble(y_a  = runif(10, 1, 10),              y_b  = runif(10, 10, 20),              x    = runif(10, 15, 30),              d    = runif(10, 1, 50))  ### \u0438\u0437 _if \u0432 accross df %&gt;% mutate_if(is.numeric, mean, na.rm = TRUE) # -&gt; df %&gt;% mutate(across(is.numeric, mean, na.rm = TRUE))  ### \u0438\u0437 _at \u0432 accross df %&gt;% mutate_at(vars(c(x, starts_with(&quot;y&quot;))), mean, na.rm = TRUE) # -&gt; df %&gt;% mutate(across(c(x, starts_with(&quot;y&quot;)), mean, na.rm = TRUE))  ### \u0438\u0437 _all \u0432 accroos df %&gt;% mutate_all(mean, na.rm = TRUE) # -&gt; df %&gt;% mutate(across(everything(), mean, na.rm = TRUE))<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u0441\u044b\u043b\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/04\/dplyr-1-0-0-colwise\/\" rel=\"nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/selesnow\/publications\/blob\/master\/code_example\/dplyr-1-0-0\/dplyr_1.0.0_-_accross.R\" rel=\"nofollow\">\u041a\u043e\u0434 \u043d\u0430 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=J5tZpx_JxWk&amp;list=PLD2LDq8edf4qETNK0JPCjtsoQ7lq9BBV1&amp;index=3&amp;t=0s\" rel=\"nofollow\">\u0412\u0438\u0434\u0435\u043e \u043d\u0430 YouTube<\/a><\/li>\n<\/ul>\n<\/div><\/div>\n<p>  <\/p>\n<h3 id=\"perebor-strok-funkciey-rowwise\">\u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 rowwise()<\/h3>\n<p>  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/b23WR3vEGJc?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\" allow=\"encrypted-media; accelerometer; gyroscope; picture-in-picture\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p><code>rowwise()<\/code> \u043f\u0440\u0438\u0448\u043b\u0430 \u043d\u0430 \u0441\u043c\u0435\u043d\u0443 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0443 \u0441\u0442\u0440\u043e\u043a \u0432 R \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432. \u042d\u0442\u0430 \u043d\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0444\u0440\u0435\u0439\u043c \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c, \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u0442\u0440\u043e\u043a \u0430\u0433\u0440\u0443\u0433\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043e\u043a \u0432 \u0432\u044b\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0444\u0440\u0435\u0439\u043c\u0435. <\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 \u0432\u0438\u0434\u0435\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">#devtools::install_github(&quot;tidyverse\/dplyr&quot;) library(dplyr)  # test data df &lt;- tibble(   student_id = 1:4,    test1 = 10:13,    test2 = 20:23,    test3 = 30:33,    test4 = 40:43 )  df  # \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u043e\u0446\u0435\u043d\u043a\u0443 \u043f\u043e \u0441\u0442\u0443\u0434\u0435\u0442\u0443 df %&gt;% mutate(avg = mean(c(test1, test2, test3, test4)))  # \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c rowwise \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u0435\u0439\u043c\u0430 rf &lt;- rowwise(df, student_id) rf  rf %&gt;% mutate(avg = mean(c(test1, test2, test3, test4)))  # \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c c_across rf %&gt;% mutate(avg = mean(c_across(starts_with(&quot;test&quot;))))  # ########################### # \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e df %&gt;% mutate(total = test1 + test2 + test3 + test4)  # \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e df %&gt;% mutate(avg = (test1 + test2 + test3 + test4) \/ 4)  # \u0442\u0430\u043a \u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 # \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a df %&gt;% mutate(   min = pmin(test1, test2, test3, test4),    max = pmax(test1, test2, test3, test4),    string = paste(test1, test2, test3, test4, sep = &quot;-&quot;) ) # \u0432\u0441\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c rowwise # \u043d\u043e rowwise \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e  # ################################## # \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 df &lt;- tibble(   x = list(1, 2:3, 4:6),   y = list(TRUE, 1, &quot;a&quot;),   z = list(sum, mean, sd) )  # \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a df %&gt;%    rowwise() %&gt;%    summarise(     x_length = length(x),     y_type = typeof(y),     z_call = z(1:5)   )  # ################################## # \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 df &lt;- tribble(   ~id, ~ n, ~ min, ~ max,   1,   3,     0,     1,   2,   2,    10,   100,   3,   2,   100,  1000, )  # \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c rowwise \u0434\u043b\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 df %&gt;%   rowwise(id) %&gt;%   mutate(data = list(runif(n, min, max)))  df %&gt;%   rowwise(id) %&gt;%   summarise(x = runif(n, min, max))  # ################################## # \u0444\u0443\u043d\u043a\u0446\u0438\u044f nest_by \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0441\u043f\u0438\u0441\u043a\u0438 by_cyl &lt;- mtcars %&gt;% nest_by(cyl) by_cyl  # \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 # \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c mutate \u0434\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u043d\u043a\u0438 \u043c\u043e\u0435\u043b\u0438 \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 by_cyl &lt;- by_cyl %&gt;% mutate(model = list(lm(mpg ~ wt, data = data))) by_cyl # \u0442\u0435\u043f\u0435\u0440\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e summarise  # \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0441\u0432\u043e\u0434\u043a\u0438 \u0438\u043b\u0438 \u043a\u043e\u044d\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 by_cyl %&gt;% summarise(broom::glance(model)) by_cyl %&gt;% summarise(broom::tidy(model))<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u0441\u044b\u043b\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/04\/dplyr-1-0-0-rowwise\/\" rel=\"nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/selesnow\/publications\/blob\/master\/code_example\/dplyr-1-0-0\/dplyr_1.0.0_-_rowwise.R\" rel=\"nofollow\">\u041a\u043e\u0434 \u043d\u0430 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=b23WR3vEGJc&amp;list=PLD2LDq8edf4qETNK0JPCjtsoQ7lq9BBV1&amp;index=2&amp;t=0s\" rel=\"nofollow\">\u0412\u0438\u0434\u0435\u043e \u043d\u0430 YouTube<\/a><\/li>\n<\/ul>\n<\/div><\/div>\n<p>  <\/p>\n<h3 id=\"dobavlenie-izmenenie-udalenie-strok-s-pomoschyu-funkciy-semeystva-rows_\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 rows_*()<\/h3>\n<p>  <\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/A2nDQqH9Kr0?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\" allow=\"encrypted-media; accelerometer; gyroscope; picture-in-picture\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0412 SQL \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 DML <em>(Data Manipulation Language)<\/em> \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>INSERT<\/code>, <code>UPDATE<\/code> \u0438 <code>DELETE<\/code>. \u041f\u0435\u0440\u0435\u0434 \u0441\u0430\u043c\u044b\u043c \u0440\u0435\u043b\u0438\u0437\u043e\u043c <code>dplyr 1.0.0<\/code> \u0432 \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0446\u0435\u043b\u043e\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <code>rows_*()<\/code> \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u0441\u0435 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u044f\u0437\u044b\u043a\u0430 R.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u043e \u043d\u043e\u0432\u043e\u043c \u0430\u0440\u0433\u043c\u0443\u0435\u043d\u0442\u0435 <code>.groups<\/code>, \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>summarise()<\/code>. \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0444\u0440\u0435\u0439\u043c\u0430 \u043f\u043e\u0441\u043b\u0435 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 \u0432\u0438\u0434\u0435\u043e<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">#devtools::install_github(&quot;tidyverse\/dplyr&quot;) library(dplyr)  # summarise + .groups starwars %&gt;%    group_by(homeworld, species) %&gt;%    summarise(n = n())  ## \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 .groups ### .groups = &quot;drop_last&quot; \u0443\u0434\u0430\u043b\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0433\u0440\u0443\u043f\u043f\u0443 ### .groups = &quot;drop&quot; \u0443\u0434\u0430\u043b\u0438\u0442 \u0432\u0441\u044e \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 ### .groups = &quot;keep&quot; \u0441\u043e\u0437\u0440\u0430\u043d\u0438\u0442 \u0432\u0441\u044e \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 ### .groups = &quot;rowwise&quot; \u0440\u0430\u0437\u043e\u0431\u044a\u0451\u0442 \u0444\u0440\u0435\u0439\u043c \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u043a\u0430\u043a rowwise()  # rows_*() ## rows_update(x, y) \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 x \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 y ## rows_patch(x, y) \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e rows_update() \u043d\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e NA ## rows_insert(x, y) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 x \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b y ## rows_upsert(x, y) \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 x \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b y ## rows_delete(x, y) \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 x \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 y.  # \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 df &lt;- tibble(a = 1:3, b = letters[c(1:2, NA)], c = 0.5 + 0:2) df  new &lt;- tibble(a = c(4, 5), b = c(&quot;d&quot;, &quot;e&quot;), c = c(3.5, 4.5)) new  # \u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b ## \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 df %&gt;% rows_insert(new)  ## row_insert \u0432\u0435\u0440\u043d\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 df %&gt;% rows_insert(tibble(a = 3, b = &quot;c&quot;))  ## \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c row_update df %&gt;% rows_update(tibble(a = 3, b = &quot;c&quot;))  ## \u043d\u043e rows_update \u0432\u0435\u0440\u043d\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0430\u043d\u0438\u0435 df %&gt;% rows_update(tibble(a = 4, b = &quot;d&quot;))  ## rows_patch \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0443 df %&gt;%    rows_patch(tibble(a = 2:3, b = &quot;B&quot;))  ## rows_upsert \u0442\u0430\u043a\u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f  ## \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 rows_upsert df %&gt;%    rows_upsert(tibble(a = 3, b = &quot;c&quot;)) %&gt;%    rows_upsert(tibble(a = 4, b = &quot;d&quot;))  # ################################ # \u0420\u0410\u0417\u0411\u0415\u0420\u0401\u041c \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e set.seed(555)  # \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b managers &lt;- c(&quot;Paul&quot;, &quot;Alex&quot;, &quot;Tim&quot;, &quot;Bill&quot;, &quot;John&quot;) # \u0442\u043e\u0432\u0430\u0440\u044b products &lt;- tibble(name  = paste0(&quot;product_&quot;, LETTERS),                     price = round(runif(n = length(LETTERS), 100, 400), 0))  # \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u0443\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 prod_list &lt;- function(prod_list, size_min, size_max) {    prod &lt;- tibble(product = sample(prod_list,                                    size = round(runif(1, size_min, size_max), 0) ,                                   replace = F))     return(prod) }  # \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0434\u0430\u0436\u0438 sales &lt;- tibble(id         = 1:200,                 manager_id = sample(managers, size = 200, replace = T),                 refund     = FALSE,                 refund_sum = 0)  # \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0438 \u043a\u0443\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 sale_proucts &lt;-     sales %&gt;%       rowwise(id) %&gt;%       summarise(prod_list(products$name, 1, 6)) %&gt;%       left_join(products, by = c(&quot;product&quot; = &quot;name&quot;))  # \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u0441 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438 sales &lt;- left_join(sales, sale_proucts, by = &quot;id&quot;)  # \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u044b refund &lt;- sample_n(sales, 25) %&gt;%           mutate( refund = TRUE,                   refund_sum = price * 0.9) %&gt;%           select(-price, -manager_id)   # \u043e\u0442\u043c\u0435\u0447\u0430\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0440\u043e\u0434\u0430\u0436 sales %&gt;%   rows_update(refund)  # \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 by result &lt;-   sales %&gt;%     rows_update(refund, by = c(&quot;id&quot;, &quot;product&quot;)) <\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u0441\u044b\u043b\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/05\/dplyr-1-0-0-last-minute-additions\/\" rel=\"nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/selesnow\/publications\/blob\/master\/code_example\/dplyr-1-0-0\/dplyr_1.0.0_-insert_update_delete_rows.R\" rel=\"nofollow\">\u041a\u043e\u0434 \u043d\u0430 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=A2nDQqH9Kr0\" rel=\"nofollow\">\u0412\u0438\u0434\u0435\u043e \u043d\u0430 YouTube<\/a><\/li>\n<\/ul>\n<\/div><\/div>\n<p>  <\/p>\n<h1 id=\"zaklyuchenie\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<p>\u0412 \u0432\u0438\u0434\u0435\u043e \u043e\u0431\u0437\u043e\u0440\u0430\u0445 \u044f \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0431\u044b \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u044f\u043c\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c <code>dplyr<\/code>, \u0438 \u0443\u043f\u0443\u0441\u0442\u0438\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0430, \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043e\u0431\u0441\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 <code>dplyr<\/code>. <\/p>\n<p>  <\/p>\n<p>\u041d\u0438\u0436\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u0431\u044b\u043b\u043e \u043e\u0431\u0437\u043e\u0440\u043e\u0432, \u043d\u043e \u043e\u043d\u0438 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u044b:<\/p>\n<p>  <\/p>\n<ol>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/03\/dplyr-1-0-0-is-coming-soon\/\" rel=\"nofollow\">dplyr 1.0.0 is coming soon<\/a><\/li>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/04\/dplyr-1-0-0-and-vctrs\/\" rel=\"nofollow\">dplyr 1.0.0 and vctrs<\/a><\/li>\n<li><a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/04\/dplyr-1-0-0-package-dev\/\" rel=\"nofollow\">dplyr 1.0.0 for package developers<\/a><\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0412\u0435\u0440\u0441\u0438\u044f 1.0.0 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0447\u0442\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u0431\u0438\u043b\u0435\u043d, \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u043d\u043e \u0432\u0441\u0451, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.0.0 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u0425\u0435\u0434\u043b\u0438 \u0412\u0438\u043a\u0445\u0435\u043c \u0438 \u0435\u0433\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b <code>dplyr 1.0.0<\/code> \u0441\u0442\u0430\u043b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 R, \u0437\u0430 \u0447\u0442\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0432\u0441\u0435\u043c \u043f\u0440\u0438\u0447\u0430\u0441\u0442\u043d\u044b\u043c \u043a \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044e \u043e\u0433\u0440\u043e\u043c\u043d\u0443\u044e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/501028\/\"> https:\/\/habr.com\/ru\/post\/501028\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/501028\/\">\n<p><code>dplyr<\/code> \u2014 R \u043f\u0430\u043a\u0435\u0442, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0443 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0433\u043b\u0430\u0433\u043e\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 R.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0438\u0437 CRAN \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u043c \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u0432 \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0430\u0443\u043a\u0438 \u043e \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ej\/ta\/wj\/ejtawj7lbl16cxb7bntmw9swwpe.jpeg\"><\/p>\n<p>  <\/p>\n<p>\u0425\u0435\u0434\u043b\u0438 \u0412\u0438\u043a\u0445\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u0434 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c <code>dplyr<\/code> \u0441 2014 \u0433\u043e\u0434\u0430, <code>dplyr<\/code> \u044d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u043e\u043a <code>plyr<\/code>, \u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u0438\u0437\u044f\u0449\u043d\u044b\u0439 \u043f\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0443. \u0417\u0430 6 \u043b\u0435\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b <code>dplyr<\/code> \u0443\u0441\u0442\u0430\u043a\u0430\u043d\u0438\u043b\u0441\u044f, \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0447\u0435\u043c 29 \u043c\u0430\u044f \u0431\u044b\u043b <a href=\"https:\/\/www.tidyverse.org\/blog\/2020\/06\/dplyr-1-0-0\/\" rel=\"nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u0432\u0435\u0440\u0441\u0438\u0438 1.0.0<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0417\u0430 6 \u043d\u0435\u0434\u0435\u043b\u044c \u0434\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u0412\u0438\u043a\u0445\u0435\u043c \u043d\u0430\u0447\u0430\u043b \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439, \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 <code>dplyr<\/code> \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0433\u0440\u044f\u0434\u0443\u0449\u0438\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044f, \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u0443\u044f \u0442\u0443\u0436\u0435 \u0446\u0435\u043b\u044c, \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u0441\u043d\u0438\u043c\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u043e\u0431\u0437\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438 \u0445\u043e\u0442\u0435\u043b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f. <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 <code>dplyr<\/code> 1.0.0.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-304698","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=304698"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304698\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=304698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=304698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=304698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}