{"id":3193,"date":"2024-11-16T20:51:02","date_gmt":"2024-11-16T11:51:02","guid":{"rendered":"https:\/\/secondlife.lol\/?p=3193"},"modified":"2024-11-16T20:51:06","modified_gmt":"2024-11-16T11:51:06","slug":"donation-time-series-goal","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/ja\/donation-time-series-goal\/","title":{"rendered":"\u6bce\u9031\u306e\u5bc4\u4ed8\u30671500\u4e07\u30a6\u30a9\u30f3\u3092\u9054\u6210\u3059\u308b - R\u306e\u6642\u7cfb\u5217\u30b0\u30e9\u30d5\u3067\u76ee\u6a19\u3092\u8ffd\u8de1\u3059\u308b"},"content":{"rendered":"\n<p>2022\ub144 11\uc6d4 20\uc77c\ubd80\ud130 \ub9e4\uc8fc 2\ub9cc \uc6d0\uc529, \uadf8\ub9ac\uace0 \ub9e4\ub2ec \ud55c \ubc88\uc740 5\ub9cc \uc6d0(2\ub9cc \uc6d0 \ub300\uc2e0)\uc744 \uae30\ubd80\ud558\uae30\ub85c \uacb0\uc2ec\ud588\uace0 \uacc4\uc18d\ud574\uc11c \uc774\uc5b4\uc624\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ubaa9\ud45c\uae08\uc561 1500\ub9cc \uc6d0\uc744 \ub2ec\uc131\ud558\ub294 \uc2dc\uc810\uc744 \uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504\ub85c \ud655\uc778\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc624\ub298\uc740 \uc774\ub7ec\ud55c \uae30\ubd80 \uacc4\ud68d\uc744 \uc5b4\ub5bb\uac8c \uc2dc\uacc4\uc5f4\ub85c \ucd94\uc801\ud558\uace0 \ubaa9\ud45c \ub2ec\uc131 \uc2dc\uc810\uc744 R \uadf8\ub798\ud504\ub85c \uc2dc\uac01\ud654\ud560 \uc218 \uc788\ub294\uc9c0, R \ucf54\ub4dc\ub97c \ud1b5\ud574 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ub9e4\ub2ec, \ub9e4\uc8fc \uae30\ubd80\ud560 \ub54c \ub204\uc801 \uae08\uc561\uc774 \uc5b4\ub5bb\uac8c \uc99d\uac00\ud558\ub294\uc9c0 \uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504\ub85c \ud655\uc778\ud574 \ubcfc \uc218 \uc788\uc5b4\uc694.<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{color:var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{color:var(--global-palette2, #2B6CB0);font-size:28px;font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list{color:var(--global-palette1, #3182CE);line-height:2em;font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list .kb-table-of-contents__entry:hover{color:var(--global-palette6, #718096);}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}<\/style>\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading3193_16457e-b6, .wp-block-kadence-advancedheading.kt-adv-heading3193_16457e-b6[data-kb-block=\"kb-adv-heading3193_16457e-b6\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading3193_16457e-b6 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading3193_16457e-b6[data-kb-block=\"kb-adv-heading3193_16457e-b6\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading3193_16457e-b6 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading3193_16457e-b6[data-kb-block=\"kb-adv-heading3193_16457e-b6\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading3193_16457e-b6 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading3193_16457e-b6\">1. \uae30\ubd80 \uacc4\ud68d\uacfc \ubaa9\ud45c \uc124\uc815<\/h2>\n\n\n<style>.kb-image3193_22876b-7d .kb-image-has-overlay:after{opacity:0.3;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.kb-image3193_22876b-7d img.kb-img, .kb-image3193_22876b-7d .kb-img img{border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}<\/style>\n<div class=\"wp-block-kadence-image kb-image3193_22876b-7d\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1200\" height=\"585\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-32.jpg\" alt=\"\uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504 \uadf8\ub9bc - \ubaa9\ud45c\" class=\"kb-img wp-image-3372\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-32.jpg 1200w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-32-300x146.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-32-600x293.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-32-768x374.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-32-18x9.jpg 18w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n\n<p>\uc81c\uac00 \uacc4\ud68d\ud55c \uae30\ubd80 \ubaa9\ud45c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc758 \uae30\ubd80 \uacc4\ud68d\uc5d0 \ub530\ub77c \ubaa9\ud45c\ub97c \uc5b8\uc81c \ub2ec\uc131\ud560 \uc218 \uc788\uc744\uc9c0 \uacc4\uc0b0\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\ub9e4\uc8fc <\/strong>2\ub9cc \uc6d0\uc529 \uae30\ubd80.<\/li>\n\n\n\n<li><strong>\ud55c \ub2ec\uc5d0 \ud55c \ubc88<\/strong>\uc740 5\ub9cc \uc6d0 \uae30\ubd80.<\/li>\n\n\n\n<li><strong>\ubaa9\ud45c \uae08\uc561<\/strong>\uc740 1500\ub9cc \uc6d0\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading3193_a2dd1f-8c, .wp-block-kadence-advancedheading.kt-adv-heading3193_a2dd1f-8c[data-kb-block=\"kb-adv-heading3193_a2dd1f-8c\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading3193_a2dd1f-8c mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading3193_a2dd1f-8c[data-kb-block=\"kb-adv-heading3193_a2dd1f-8c\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading3193_a2dd1f-8c img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading3193_a2dd1f-8c[data-kb-block=\"kb-adv-heading3193_a2dd1f-8c\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading3193_a2dd1f-8c wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading3193_a2dd1f-8c\">2. \ud544\uc694\ud55c \ud328\ud0a4\uc9c0 \ub85c\ub4dc<\/h2>\n\n\n\n<p>\uba3c\uc800, \ub0a0\uc9dc \uacc4\uc0b0\uc744 \uc704\ud55c <a href=\"https:\/\/cran.r-project.org\/web\/packages\/lubridate\/index.html\" target=\"_blank\" rel=\"noopener\"><code>lubridate<\/code> \ud328\ud0a4\uc9c0<\/a>\uc640 \uadf8\ub798\ud504 \uc0dd\uc131\uc744 \uc704\ud55c <a href=\"https:\/\/secondlife.lol\/ggplot2-intro\/\" data-type=\"post\" data-id=\"3055\"><code>ggplot2<\/code> \ud328\ud0a4\uc9c0<\/a>\ub97c \ub85c\ub4dc\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \ud544\uc694\ud55c \ud328\ud0a4\uc9c0 \ub85c\ub4dc\nlibrary(lubridate)\nlibrary(ggplot2)<\/code><\/pre>\n\n\n\n<p><strong>\uc124\uba85:<\/strong> <code>lubridate<\/code> \ud328\ud0a4\uc9c0\ub294 \ub0a0\uc9dc \uacc4\uc0b0\uc744 \ud3b8\ub9ac\ud558\uac8c \ud574\uc8fc\uba70, <code>ggplot2<\/code>\ub294 \ub370\uc774\ud130 \uc2dc\uac01\ud654\ub97c \uc704\ud55c \ud328\ud0a4\uc9c0\uc785\ub2c8\ub2e4.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading3193_7eb3d9-d1, .wp-block-kadence-advancedheading.kt-adv-heading3193_7eb3d9-d1[data-kb-block=\"kb-adv-heading3193_7eb3d9-d1\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading3193_7eb3d9-d1 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading3193_7eb3d9-d1[data-kb-block=\"kb-adv-heading3193_7eb3d9-d1\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading3193_7eb3d9-d1 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading3193_7eb3d9-d1[data-kb-block=\"kb-adv-heading3193_7eb3d9-d1\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading3193_7eb3d9-d1 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading3193_7eb3d9-d1\">3. \ubcc0\uc218 \ucd08\uae30\ud654<\/h2>\n\n\n\n<p>\uae30\ubd80 \uc2dc\uc791\uc77c, \ubaa9\ud45c \uae08\uc561, \ub9e4\uc8fc \uae30\ubd80 \uae08\uc561, \ub9e4\ub2ec \uae30\ubd80 \uae08\uc561, \uadf8\ub9ac\uace0 \uc624\ub298 \ub0a0\uc9dc\ub97c \ubcc0\uc218\ub85c \uc815\uc758\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \ubcc0\uc218 \ucd08\uae30\ud654\nstart_date &lt;- as.Date(\"2022-11-20\")\nend_goal &lt;- 15000000  # 1500\ub9cc \uc6d0 \ubaa9\ud45c\nweekly_donation &lt;- 20000  # \ub9e4\uc8fc 2\ub9cc \uc6d0\nmonthly_donation &lt;- 50000  # \ub9e4\ub2ec 5\ub9cc \uc6d0\ntoday &lt;- as.Date(\"2024-11-10\")<\/code><\/pre>\n\n\n\n<p><strong>\uc124\uba85:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>start_date<\/code>: \uae30\ubd80 \uc2dc\uc791 \ub0a0\uc9dc\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>end_goal<\/code>: \ubaa9\ud45c \uae08\uc561(15,000,000\uc6d0)\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>weekly_donation<\/code>: \ub9e4\uc8fc \uae30\ubd80\ud558\ub294 \uae08\uc561(20,000\uc6d0)\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>monthly_donation<\/code>: \ub9e4\ub2ec \ucd94\uac00\ub85c \uae30\ubd80\ud558\ub294 \uae08\uc561(50,000\uc6d0)\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>today<\/code>: \ud604\uc7ac \ub0a0\uc9dc\ub97c \uae30\uc900\uc73c\ub85c \uae30\ubd80 \uc9c4\ud589 \uc0c1\ud669\uc744 \ud655\uc778\ud558\uae30 \uc704\ud574 \uc124\uc815\ud55c \ub0a0\uc9dc\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading3193_aa7b55-7c, .wp-block-kadence-advancedheading.kt-adv-heading3193_aa7b55-7c[data-kb-block=\"kb-adv-heading3193_aa7b55-7c\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading3193_aa7b55-7c mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading3193_aa7b55-7c[data-kb-block=\"kb-adv-heading3193_aa7b55-7c\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading3193_aa7b55-7c img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading3193_aa7b55-7c[data-kb-block=\"kb-adv-heading3193_aa7b55-7c\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading3193_aa7b55-7c wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading3193_aa7b55-7c\">4. \ub0a0\uc9dc\uc640 \ub204\uc801 \uae08\uc561\uc744 \uc800\uc7a5\ud560 \ub370\uc774\ud130 \ud504\ub808\uc784 \uc0dd\uc131<\/h2>\n\n\n\n<p>2022\ub144 11\uc6d4 20\uc77c\ubd80\ud130 \ub9e4\uc8fc \uae30\ubd80\uc77c\uc774 \ub418\ub294 \ub0a0\uc9dc\ub97c \uc0dd\uc131\ud558\uc5ec <code>dates<\/code> \ubcc0\uc218\uc5d0 \uc800\uc7a5\ud558\uace0, \uc774\ub97c \ub370\uc774\ud130 \ud504\ub808\uc784 <code>donations<\/code>\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \ub0a0\uc9dc\uc640 \ub204\uc801 \uae08\uc561\uc744 \uc800\uc7a5\ud560 \ub370\uc774\ud130 \ud504\ub808\uc784 \uc0dd\uc131\ndates &lt;- seq(from = start_date, by = \"week\", length.out = 520)  # 2032\ub144 12\uc6d4 31\uc77c\uae4c\uc9c0\ndonations &lt;- data.frame(Date = dates, Donation = 0)<\/code><\/pre>\n\n\n\n<p><strong>\uc124\uba85:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>dates<\/code>: \ub9e4\uc8fc \uae30\ubd80\uc77c\uc5d0 \ud574\ub2f9\ud558\ub294 \ub0a0\uc9dc \ub9ac\uc2a4\ud2b8\uc785\ub2c8\ub2e4. \ucd5c\ub300 \uae38\uc774\ub97c 520\uc8fc\ub85c \uc124\uc815\ud574 2032\ub144 \ub9d0\uae4c\uc9c0 \ub0a0\uc9dc\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>donations<\/code>: \uac01 \ub0a0\uc9dc\uc640 \ud574\ub2f9 \ub0a0\uc9dc\uc758 \ub204\uc801 \uae30\ubd80 \uae08\uc561\uc744 \uae30\ub85d\ud560 \ub370\uc774\ud130 \ud504\ub808\uc784\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. \uae30\ubd80 \ub204\uc801 \uacc4\uc0b0<\/h2>\n\n\n\n<p>\ubc18\ubcf5\ubb38\uc744 \ud1b5\ud574 \ub9e4\uc8fc \uae30\ubd80 \uae08\uc561\uc744 \ub204\uc801\ud558\uba70, \ub9e4\ub2ec \ub124 \ubc88\uc9f8 \uc8fc\uc5d0\ub294 \ucd94\uac00\ub85c 5\ub9cc \uc6d0\uc744 \ub354\ud574 \ucd1d \uae30\ubd80 \uae08\uc561\uc744 \ub204\uc801\ud569\ub2c8\ub2e4. \ubaa9\ud45c \uae08\uc561\uc5d0 \ub3c4\ub2ec\ud558\ub294 \uc2dc\uc810\uc5d0\uc11c \ubc18\ubcf5\uc744 \uc885\ub8cc\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \uae30\ubd80 \ub204\uc801 \uacc4\uc0b0\ntotal_donation &lt;- 0\nfor (i in 1:nrow(donations)) {\n    if (i %% 4 == 0) {  # \ub9e4\ub2ec 5\ub9cc \uc6d0 \ucd94\uac00\n        total_donation &lt;- total_donation + weekly_donation + monthly_donation\n    } else {\n        total_donation &lt;- total_donation + weekly_donation\n    }\n    donations$Donation&#91;i] &lt;- total_donation\n\n    if (total_donation &gt;= end_goal) {\n        # \ubaa9\ud45c \ub2ec\uc131\uc77c \uacc4\uc0b0\n        goal_date &lt;- donations$Date&#91;i]\n        break\n    }\n}<\/code><\/pre>\n\n\n\n<p><strong>\uc124\uba85:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>for<\/code> \ub8e8\ud504\ub97c \ud1b5\ud574 \ub9e4\uc8fc <code>weekly_donation<\/code> \uae08\uc561\uc744 \ub204\uc801\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>if (i %% 4 == 0)<\/code>: \ub9e4\ub2ec \ub124 \ubc88\uc9f8 \uc8fc\ucc28\ub9c8\ub2e4 <code>monthly_donation<\/code>\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>donations$Donation[i] &lt;- total_donation<\/code>: \uac01 \ub0a0\uc9dc\uc758 \ub204\uc801 \uae30\ubd80 \uae08\uc561\uc744 \uae30\ub85d\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ubaa9\ud45c \uae08\uc561\uc5d0 \ub3c4\ub2ec\ud558\uba74 <code>goal_date<\/code> \ubcc0\uc218\uc5d0 \ubaa9\ud45c \ub2ec\uc131 \ub0a0\uc9dc\ub97c \uc800\uc7a5\ud558\uace0 \ubc18\ubcf5\uc744 \uc885\ub8cc\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">6. \ud604\uc7ac \ub204\uc801 \uae30\ubd80 \uae08\uc561 \ud655\uc778<\/h2>\n\n\n\n<p>\uc124\uc815\ud55c \ub0a0\uc9dc(<code>today<\/code>)\uae4c\uc9c0\uc758 \ub204\uc801 \uae30\ubd80 \uae08\uc561\uc744 \ud655\uc778\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \ud604\uc7ac \ub204\uc801 \uae08\uc561 \ud655\uc778\ncurrent_donation &lt;- donations$Donation&#91;which(donations$Date &lt;= today)]\ncurrent_donation &lt;- tail(current_donation, 1)<\/code><\/pre>\n\n\n\n<p><strong>\uc124\uba85:<\/strong> <code>current_donation<\/code>\uc740 <code>today<\/code> \ub0a0\uc9dc\ub97c \uae30\uc900\uc73c\ub85c \ub204\uc801 \uae30\ubd80 \uae08\uc561\uc744 \ud655\uc778\ud558\uba70, \ucd5c\uc2e0 \uac12\ub9cc \uc800\uc7a5\ud574 \ud604\uc7ac \ub204\uc801 \uae08\uc561\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. R \uadf8\ub798\ud504 \uc0dd\uc131<\/h2>\n\n\n\n<p>\ub204\uc801 \uae30\ubd80 \uae08\uc561\uc744 \uc2dc\uac01\ud654\ud558\uc5ec \ubaa9\ud45c \uae08\uc561\uacfc \ubaa9\ud45c \ub2ec\uc131 \ub0a0\uc9dc\ub97c \ud3ec\ud568\ud55c \uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># R \uadf8\ub798\ud504 \uc0dd\uc131\np &lt;- ggplot(donations, aes(x = Date, y = Donation)) +\n    geom_line(color = \"blue\") +\n    geom_hline(yintercept = end_goal, linetype = \"dashed\", color = \"red\") +\n    geom_vline(xintercept = as.numeric(goal_date), linetype = \"dotted\", color = \"green\") +\n    labs(\n        title = \"Cumulative Donation Time Series Graph\",\n        subtitle = paste(\"Estimated Goal Achievement Date:\", format(goal_date, \"%Y-%m-%d\")),\n        x = \"Date\",\n        y = \"Cumulative Donation (won)\"\n    ) +\n    annotate(\"text\", x = goal_date, y = end_goal, label = \"Goal Achieved\", vjust = -1.5, color = \"green\") +\n    theme_minimal() +\n    scale_x_date(limits = c(start_date, as.Date(\"2032-12-31\")))\n\nprint(p)<\/code><\/pre>\n\n\n\n<p><strong>\uc124\uba85:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>geom_line(color = \"blue\")<\/code>: \uae30\ubd80 \uae08\uc561\uc758 \ub204\uc801 \uc99d\uac00\ub97c \ud30c\ub780\uc0c9 \uc120\uc73c\ub85c \uc2dc\uac01\ud654\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>geom_hline(yintercept = end_goal, linetype = \"dashed\", color = \"red\")<\/code>: \ubaa9\ud45c \uae08\uc561\uc744 \ube68\uac04\uc0c9 \uc810\uc120\uc73c\ub85c \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>geom_vline(xintercept = as.numeric(goal_date), linetype = \"dotted\", color = \"green\")<\/code>: \ubaa9\ud45c \ub2ec\uc131 \ub0a0\uc9dc\ub97c \ucd08\ub85d\uc0c9 \uc810\uc120\uc73c\ub85c \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>labs()<\/code>: \uadf8\ub798\ud504 \uc81c\ubaa9, \ubd80\uc81c\ubaa9, \ucd95 \ub77c\ubca8\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4. \ubd80\uc81c\ubaa9\uc5d0\ub294 \ubaa9\ud45c \ub2ec\uc131 \uc608\uc0c1 \ub0a0\uc9dc\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>annotate(\"text\")<\/code>: \ubaa9\ud45c \ub2ec\uc131 \ub0a0\uc9dc\uc5d0 \u201cGoal Achieved\u201d \ub77c\ubca8\uc744 \ucd94\uac00\ud558\uc5ec \ub2ec\uc131 \uc9c0\uc810\uc744 \uac15\uc870\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>theme_minimal()<\/code>: \uadf8\ub798\ud504 \ud14c\ub9c8\ub97c \ub2e8\uc21c\ud654\ud558\uc5ec \ub370\uc774\ud130\uac00 \uac15\uc870\ub418\ub3c4\ub85d \uc124\uc815\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><code>scale_x_date(limits = c(start_date, as.Date(\"2032-12-31\")))<\/code>: x\ucd95\uc758 \ubc94\uc704\ub97c \uc2dc\uc791\uc77c\uacfc 2032\ub144 12\uc6d4 31\uc77c \uc0ac\uc774\ub85c \uc81c\ud55c\ud558\uc5ec \uc2dc\uac01\ud654 \ubc94\uc704\ub97c \uc870\uc808\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n<style>.kb-image3193_6d89c2-53 .kb-image-has-overlay:after{opacity:0.3;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.kb-image3193_6d89c2-53 img.kb-img, .kb-image3193_6d89c2-53 .kb-img img{border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}<\/style>\n<div class=\"wp-block-kadence-image kb-image3193_6d89c2-53\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1200\" height=\"663\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-31.jpg\" alt=\"\uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504 \ubaa9\ud45c-\uc2e4\uc801\" class=\"kb-img wp-image-3347\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-31.jpg 1200w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-31-300x166.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-31-600x332.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-31-768x424.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/image-4-31-18x10.jpg 18w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\ub9c8\ubb34\ub9ac: \ubaa9\ud45c \ub2ec\uc131 \uc2dc\uc810\uacfc \ub204\uc801 \uae30\ubd80\uae08 \uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504 \uc2dc\uac01\ud654<\/h2>\n\n\n\n<p>\uc774\ubc88 \ud3ec\uc2a4\ud2b8\uc5d0\uc11c\ub294 \ub9e4\uc8fc\uc640 \ub9e4\ub2ec \uae30\ubd80\ud558\ub294 \uacc4\ud68d\uc744 \uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504\ub85c \ud45c\ud604\ud558\uc5ec \ubaa9\ud45c \ub2ec\uc131 \uc2dc\uc810\uc744 \ud655\uc778\ud574 \ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc2dc\uac01\ud654\ub97c \ud1b5\ud574 \uae30\ubd80 \ubaa9\ud45c \ub2ec\uc131 \uc5ec\ubd80\ub97c \uc9c1\uad00\uc801\uc73c\ub85c \ud30c\uc545\ud560 \uc218 \uc788\uc73c\uba70, \uc55e\uc73c\ub85c\ub3c4 \uae30\ubd80 \ubaa9\ud45c\ub97c \ucd94\uc801\ud558\ub294 \ub370 \ud070 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. \uc5ec\ub7ec\ubd84\ub3c4 \uc774 \ucf54\ub4dc\ub97c \ud1b5\ud574 \uc790\uc2e0\uc758 \uae30\ubd80 \uacc4\ud68d\uc744 \ucd94\uc801\ud574 \ubcf4\uc138\uc694!<\/p>\n\n\n\n<p>\uc2dc\uacc4\uc5f4 \uadf8\ub798\ud504\uc640 \ube44\uc2b7\ud55c \uc8fc\uc81c\ub85c \ubaa9\ud45c \ub300\ube44 \uc2e4\uc801\uc744 \ud55c\ubc88\uc5d0 \uc54c\uc544\ubcfc \uc218 \uc788\ub3c4\ub85d \uc2dc\uac01\ud654 \ud558\ub294 \uac83\ub3c4 \ud544\uc694\ud55c\ub370\uc694. <a href=\"https:\/\/secondlife.lol\/goal-vs-achievement-visualization\/\" data-type=\"post\" data-id=\"3196\">\ubaa9\ud45c \ub300\ube44 \uc2e4\uc801 \uadf8\ub798\ud504\ub97c \uc5b4\ub5bb\uac8c \uadf8\ub9ac\uba74 \uc88b\uc744\uae4c?<\/a> \ud3ec\uc2a4\ud2b8\ub97c \ud1b5\ud574\uc11c \uadf8 \uc791\uc5c5\uc744 \ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694!<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading3193_71b234-a0, .wp-block-kadence-advancedheading.kt-adv-heading3193_71b234-a0[data-kb-block=\"kb-adv-heading3193_71b234-a0\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading3193_71b234-a0 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading3193_71b234-a0[data-kb-block=\"kb-adv-heading3193_71b234-a0\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading3193_71b234-a0 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading3193_71b234-a0[data-kb-block=\"kb-adv-heading3193_71b234-a0\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading3193_71b234-a0 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading3193_71b234-a0\"># \uc804\uccb4 \ucf54\ub4dc<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># \ud544\uc694\ud55c \ud328\ud0a4\uc9c0 \ub85c\ub4dc\nlibrary(lubridate)\nlibrary(ggplot2)\n\n# \ubcc0\uc218 \ucd08\uae30\ud654\nstart_date &lt;- as.Date(\"2022-11-20\")\nend_goal &lt;- 15000000  # 1500\ub9cc \uc6d0 \ubaa9\ud45c\nweekly_donation &lt;- 20000  # \ub9e4\uc8fc 2\ub9cc \uc6d0\nmonthly_donation &lt;- 50000  # \ub9e4\ub2ec 5\ub9cc \uc6d0\ntoday &lt;- as.Date(\"2024-11-10\")\n\n# \ub0a0\uc9dc\uc640 \ub204\uc801 \uae08\uc561\uc744 \uc800\uc7a5\ud560 \ub370\uc774\ud130 \ud504\ub808\uc784 \uc0dd\uc131\ndates &lt;- seq(from = start_date, by = \"week\", length.out = 520)  # 2032\ub144 12\uc6d4 31\uc77c\uae4c\uc9c0\ndonations &lt;- data.frame(Date = dates, Donation = 0)\n\n# \uae30\ubd80 \ub204\uc801 \uacc4\uc0b0\ntotal_donation &lt;- 0\nfor (i in 1:nrow(donations)) {\n    if (i %% 4 == 0) {  # \ub9e4\ub2ec 5\ub9cc \uc6d0 \ucd94\uac00\n        total_donation &lt;- total_donation + weekly_donation + monthly_donation\n    } else {\n        total_donation &lt;- total_donation + weekly_donation\n    }\n    donations$Donation&#91;i] &lt;- total_donation\n    \n    if (total_donation >= end_goal) {\n        # \ubaa9\ud45c \ub2ec\uc131\uc77c \uacc4\uc0b0\n        goal_date &lt;- donations$Date&#91;i]\n        break\n    }\n}\n\n# \ud604\uc7ac \ub204\uc801 \uae08\uc561 \ud655\uc778\ncurrent_donation &lt;- donations$Donation&#91;which(donations$Date &lt;= today)]\ncurrent_donation &lt;- tail(current_donation, 1)\n\n# R \uadf8\ub798\ud504 \uc0dd\uc131\np &lt;- ggplot(donations, aes(x = Date, y = Donation)) +\n    geom_line(color = \"blue\") +\n    geom_hline(yintercept = end_goal, linetype = \"dashed\", color = \"red\") +\n    geom_vline(xintercept = as.numeric(goal_date), linetype = \"dotted\", color = \"green\") +\n    labs(\n        title = \"Cumulative Donation Time Series Graph\",\n        subtitle = paste(\"Estimated Goal Achievement Date:\", format(goal_date, \"%Y-%m-%d\")),\n        x = \"Date\",\n        y = \"Cumulative Donation (won)\"\n    ) +\n    annotate(\"text\", x = goal_date, y = end_goal, label = \"Goal Achieved\", vjust = -1.5, color = \"green\") +\n    theme_minimal() +\n    scale_x_date(limits = c(start_date, as.Date(\"2032-12-31\")))\n\nprint(p)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>2022\u5e7411\u670820\u65e5\u304b\u3089\u6bce\u90312\u4e07\u30a6\u30a9\u30f3\u305a\u3064\u3001\u305d\u3057\u3066\u6bce\u67081\u56de\u306f...<\/p>","protected":false},"author":3,"featured_media":3348,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[6],"tags":[176,300,174,164],"class_list":{"0":"post-3193","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-r-coding","8":"tag-ggplot2","9":"tag-r-","11":"tag-164"},"taxonomy_info":{"category":[{"value":6,"label":"\uc54c(R)"}],"post_tag":[{"value":176,"label":"ggplot2"},{"value":300,"label":"R \uc2dc\uac01\ud654"},{"value":174,"label":"R \ud504\ub85c\uadf8\ub798\ubc0d"},{"value":164,"label":"\ub370\uc774\ud130 \uc2dc\uac01\ud654"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/11\/\uc2dc\uacc4\uc5f4-\uadf8\ub798\ud504-post-thumbnail-600x600.jpg",600,600,true],"author_info":{"display_name":"TERE","author_link":"https:\/\/secondlife.lol\/ja\/author\/tere\/"},"comment_info":0,"category_info":[{"term_id":6,"name":"\uc54c(R)","slug":"r-coding","term_group":0,"term_taxonomy_id":6,"taxonomy":"category","description":"","parent":20,"count":61,"filter":"raw","cat_ID":6,"category_count":61,"category_description":"","cat_name":"\uc54c(R)","category_nicename":"r-coding","category_parent":20}],"tag_info":[{"term_id":176,"name":"ggplot2","slug":"ggplot2","term_group":0,"term_taxonomy_id":176,"taxonomy":"post_tag","description":"","parent":0,"count":15,"filter":"raw"},{"term_id":300,"name":"R \uc2dc\uac01\ud654","slug":"r-%ec%8b%9c%ea%b0%81%ed%99%94","term_group":0,"term_taxonomy_id":300,"taxonomy":"post_tag","description":"","parent":0,"count":12,"filter":"raw"},{"term_id":174,"name":"R \ud504\ub85c\uadf8\ub798\ubc0d","slug":"r-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%b0%8d","term_group":0,"term_taxonomy_id":174,"taxonomy":"post_tag","description":"","parent":0,"count":15,"filter":"raw"},{"term_id":164,"name":"\ub370\uc774\ud130 \uc2dc\uac01\ud654","slug":"%eb%8d%b0%ec%9d%b4%ed%84%b0-%ec%8b%9c%ea%b0%81%ed%99%94","term_group":0,"term_taxonomy_id":164,"taxonomy":"post_tag","description":"","parent":0,"count":52,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts\/3193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/comments?post=3193"}],"version-history":[{"count":9,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts\/3193\/revisions"}],"predecessor-version":[{"id":3375,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/posts\/3193\/revisions\/3375"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/media\/3348"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/media?parent=3193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/categories?post=3193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/ja\/wp-json\/wp\/v2\/tags?post=3193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}