{"id":432,"date":"2023-04-17T14:49:13","date_gmt":"2023-04-17T14:49:13","guid":{"rendered":"https:\/\/yunshangtulv.com.cn\/?p=432"},"modified":"2023-04-18T10:03:51","modified_gmt":"2023-04-18T10:03:51","slug":"r%e8%af%ad%e8%a8%80%e8%bf%9b%e9%98%b6%e7%bb%98%e5%9b%be%ef%bc%9a%e7%94%9f%e5%ad%98","status":"publish","type":"post","link":"https:\/\/yunshangtulv.com.cn\/?p=432","title":{"rendered":"R\u8bed\u8a00\u8fdb\u9636\u7ed8\u56fe\uff1a\u751f\u5b58\u66f2\u7ebf"},"content":{"rendered":"<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert dark\">\n<h2><span>\u4e24\u7ec4\u95f4\u5e26\u7f6e\u4fe1\u533a\u95f4\u7684\u751f\u5b58\u66f2\u7ebf<\/span><\/h2>\n<p>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528R\u8bed\u8a00\u548c<code>survival<\/code>\u53ca<code>ggplot2<\/code>\u5305\u7ed8\u5236\u4e24\u7ec4\u95f4\u5e26\u7f6e\u4fe1\u533a\u95f4\u7684\u751f\u5b58\u66f2\u7ebf\u7684\u793a\u4f8b\u3002\u6211\u4eec\u5c06\u4f7f\u7528<code>lung<\/code>\u6570\u636e\u96c6\uff0c\u8be5\u6570\u636e\u96c6\u5305\u542b\u4e86\u4e00\u7ec4\u80ba\u764c\u60a3\u8005\u7684\u751f\u5b58\u65f6\u95f4\u548c\u5176\u4ed6\u76f8\u5173\u4fe1\u606f\u3002\u5728\u6b64\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5c06\u6839\u636e\u60a3\u8005\u662f\u5426\u63a5\u53d7\u4e86\u653e\u7597\uff08\u53d8\u91cf\u540d\u4e3a<code>ph.ecog<\/code>\uff09\u5c06\u6570\u636e\u5206\u4e3a\u4e24\u7ec4\u3002<\/p>\n<p>\u9996\u5148\uff0c\u5b89\u88c5\u5e76\u52a0\u8f7d\u6240\u9700\u7684\u5305\uff1a<span class=\"hljs-punctuation\"><\/span><\/p>\n<pre class=\"corepress-code-pre\"><code>if (!requireNamespace(\"survival\", quietly = TRUE))\r\ninstall.packages(\"survival\")\r\nlibrary(survival)if (!requireNamespace(\"ggplot2\", quietly = TRUE))\r\ninstall.packages(\"ggplot2\")\r\nlibrary(ggplot2)if (!requireNamespace(\"survminer\", quietly = TRUE))\r\ninstall.packages(\"survminer\")\r\nlibrary(survminer)\r\n\r\n\u63a5\u4e0b\u6765\uff0c\u52a0\u8f7d\u6570\u636e\u5e76\u5bf9\u6570\u636e\u8fdb\u884c\u9884\u5904\u7406\uff1a\r\n\r\n# \u52a0\u8f7d\u6570\u636e\r\ndata(\"lung\")\r\n\u6211\u4eec\u5c55\u793alung\u6570\u636e\u96c6\u7684\u524d\u51e0\u884c\uff1a\r\n# \u663e\u793a\u6570\u636e\u96c6\u7684\u524d6\u884c\r\nhead(lung)\r\n\r\n# \u5c06ph.ecog\u53d8\u91cf\u8f6c\u6362\u4e3a\u56e0\u5b50\u7c7b\u578b\uff0c\u4f7f\u5176\u66f4\u6613\u4e8e\u5904\u7406 lung$ph.ecog &lt;- as.factor(lung$ph.ecog)\r\n\r\n#\u73b0\u5728\uff0c\u4f7f\u7528survfit()\u51fd\u6570\u62df\u5408\u751f\u5b58\u66f2\u7ebf\u6a21\u578b\uff1a\r\n\r\n\r\n\r\n# \u4f7f\u7528Cox\u6bd4\u4f8b\u98ce\u9669\u6a21\u578b\u62df\u5408\u751f\u5b58\u66f2\u7ebf\r\nfit &lt;- survfit(Surv(time, status) ~ ph.ecog, data = lung)\r\n\r\n\r\n#\u6700\u540e\uff0c\u4f7f\u7528ggsurvplot()\u51fd\u6570\u7ed8\u5236\u751f\u5b58\u66f2\u7ebf\u56fe\uff1a\r\n\r\n\r\n\r\n# \u7ed8\u5236\u751f\u5b58\u66f2\u7ebf\r\np &lt;- ggsurvplot(fit, data = lung,\r\nrisk.table = TRUE, # \u5728\u56fe\u4e0b\u65b9\u663e\u793a\u98ce\u9669\u8868\r\npval = TRUE, # \u663e\u793alog-rank\u68c0\u9a8c\u7684p\u503c\r\nconf.int = TRUE, # \u6dfb\u52a0\u7f6e\u4fe1\u533a\u95f4\r\nxlab = \"\u65f6\u95f4\uff08\u5929\uff09\", # x\u8f74\u6807\u7b7e\r\nylab = \"\u751f\u5b58\u6982\u7387\", # y\u8f74\u6807\u7b7e\r\ntitle = \"\u4e24\u7ec4\u60a3\u8005\u7684\u751f\u5b58\u66f2\u7ebf\", # \u56fe\u6807\u9898\r\nlegend.labs = c(\"ECOG 0\", \"ECOG 1\", \"ECOG 2\", \"ECOG 3\"), # \u56fe\u4f8b\u6807\u7b7e\r\nlegend.title = \"\u6cbb\u7597\u60c5\u51b5\", # \u56fe\u4f8b\u6807\u9898\r\nlinetype = c(\"solid\", \"dashed\", \"dotted\", \"dotdash\"), # \u7ebf\u578b\r\npalette = c(\"#E69F00\", \"#56B4E9\", \"#009E73\", \"#F0E442\"), # \u989c\u8272\r\nggtheme = theme_minimal()) # \u56fe\u5f62\u4e3b\u9898# \u663e\u793a\u56fe\u5f62\r\nprint(p)<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>\u5728\u8fd9\u4e2a\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u52a0\u8f7d\u4e86\u6240\u9700\u7684\u5305\u548c\u6570\u636e\uff0c\u7136\u540e\u5bf9\u6570\u636e\u8fdb\u884c\u4e86\u9884\u5904\u7406\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f7f\u7528\u4e86Cox\u6bd4\u4f8b\u98ce\u9669\u6a21\u578b\u62df\u5408\u751f\u5b58\u66f2\u7ebf\uff0c\u5e76\u4f7f\u7528<code>ggsurvplot()<\/code>\u51fd\u6570\u7ed8\u5236\u4e86\u751f\u5b58\u66f2\u7ebf\u56fe\u3002\u6211\u4eec\u8bbe\u7f6e\u4e86\u5404\u79cd\u53c2\u6570\uff0c\u4f7f\u56fe\u5f62\u5c3d\u53ef\u80fd\u7f8e\u89c2\u548c\u8be6\u5c3d\uff0c\u5305\u62ec\u6dfb\u52a0\u98ce\u9669\u8868\u3001\u663e\u793alog-rank\u68c0\u9a8c\u7684p\u503c\u3001\u6dfb\u52a0\u7f6e\u4fe1\u533a\u95f4\u4ee5\u53ca\u8bbe\u7f6e\u8f74\u6807\u7b7e\u3001\u56fe\u4f8b\u548c\u7ebf\u578b\u7b49\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"w-[30px] flex flex-col relative items-end\">\n<div class=\"relative h-[30px] w-[30px] p-1 rounded-sm text-white flex items-center justify-center\"><img decoding=\"async\" src=\"https:\/\/yunshangtulv.com.cn\/wp-content\/uploads\/2023\/04\/1681742785224.webp\" \/><\/div>\n<\/div>\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert dark\">\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u6309\u7167\u4e4b\u524d\u7684\u6b65\u9aa4\u521b\u5efa\u751f\u5b58\u66f2\u7ebf\u56fe\u3002\u7136\u540e\uff0c\u6211\u4eec\u5c06\u56fe\u5f62\u4fdd\u5b58\u4e3aPDF\u6587\u4ef6\uff1a<\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-R\"><span class=\"hljs-comment\"># \u4fdd\u5b58\u56fe\u5f62\u4e3aPDF\u6587\u4ef6<\/span><br \/>\nggsave<span class=\"hljs-punctuation\">(<\/span>filename <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-string\">\"survival_curve.pdf\"<\/span><span class=\"hljs-punctuation\">,<\/span> plot <span class=\"hljs-operator\">=<\/span> p<span class=\"hljs-operator\">$<\/span>plot<span class=\"hljs-punctuation\">,<\/span> device <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-string\">\"pdf\"<\/span><span class=\"hljs-punctuation\">,<\/span> width <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">10<\/span><span class=\"hljs-punctuation\">,<\/span> height <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">7<\/span><span class=\"hljs-punctuation\">,<\/span> units <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-string\">\"in\"<\/span><span class=\"hljs-punctuation\">)<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<p>\u8fd9\u6bb5\u4ee3\u7801\u5c06\u5728\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a<code>survival_curve.pdf<\/code>\u7684\u6587\u4ef6\uff0c\u5176\u4e2d\u5305\u542b\u751f\u5b58\u66f2\u7ebf\u56fe\u3002\u5728<code>ggsave()<\/code>\u51fd\u6570\u4e2d\uff0c\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49PDF\u6587\u4ef6\u7684\u5927\u5c0f\u548c\u5206\u8fa8\u7387\uff0c\u4f8b\u5982\u8bbe\u7f6e<code>width<\/code>\u3001<code>height<\/code>\u548c<code>units<\/code>\u53c2\u6570\u3002<\/p>\n<\/div>\n<h2><span>\u5177\u6709cut-off\u7684\u751f\u5b58\u66f2\u7ebf<\/span><\/h2>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u5c06\u4f7f\u7528<code>survival<\/code>\u548c<code>survminer<\/code>\u5305\u521b\u5efa\u751f\u5b58\u66f2\u7ebf\u3002\u8fd9\u91cc\uff0c\u6211\u5c06\u4f7f\u7528\u5185\u7f6e\u7684<code>lung<\/code>\u6570\u636e\u96c6\u4f5c\u4e3a\u793a\u4f8b\u3002<code>lung<\/code>\u6570\u636e\u96c6\u662f\u5173\u4e8e\u80ba\u764c\u60a3\u8005\u7684\u751f\u5b58\u6570\u636e\u3002<\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"p-4 overflow-y-auto\">\n<pre class=\"corepress-code-pre\"><code>\r\n\r\n# \u5b89\u88c5\u5e76\u52a0\u8f7d\u6240\u9700\u7684\u5305\r\nif (!requireNamespace(\"survival\", quietly = TRUE))\r\ninstall.packages(\"survival\")\r\nif (!requireNamespace(\"survminer\", quietly = TRUE))\r\ninstall.packages(\"survminer\")library(survival)\r\nlibrary(survminer)# \u52a0\u8f7dlung\u6570\u636e\u96c6\r\ndata(lung)# \u663e\u793a\u524d\u51e0\u884c\u6570\u636e\r\nhead(lung)# \u521b\u5efa\u751f\u5b58\u5bf9\u8c61\r\nsurv_object &lt;- Surv(lung$time, lung$status)\r\n\r\n# \u4f7f\u7528Cox\u6bd4\u4f8b\u98ce\u9669\u6a21\u578b\u62df\u5408\u751f\u5b58\u6570\u636e\r\n# \u4ee5\u6027\u522b\uff08sex\uff09\u4f5c\u4e3a\u5206\u7ec4\u53d8\u91cf\r\nfit &lt;- survfit(surv_object ~ sex, data = lung)\r\n\r\n# \u7ed8\u5236\u751f\u5b58\u66f2\u7ebf\r\ng &lt;- ggsurvplot(fit, data = lung,\r\nrisk.table = TRUE,\r\npval = TRUE,\r\nconf.int = TRUE,\r\nlegend.labs = c(\"Male\", \"Female\"),\r\nxlab = \"Time (days)\",\r\nylab = \"Survival probability\",\r\ntitle = \"Survival curves with 95% confidence intervals\",\r\nbreak.time.by = 500,\r\nggtheme = theme_minimal())\r\n\r\n# \u5728\u751f\u5b58\u66f2\u7ebf\u4e0a\u6dfb\u52a0cutoff\r\ncutoff &lt;- 1000\r\ng$table &lt;- g$table + geom_vline(xintercept = cutoff, linetype = \"dashed\", color = \"blue\")\r\ng$plot &lt;- g$plot + geom_vline(xintercept = cutoff, linetype = \"dashed\", color = \"blue\")\r\n\r\n# \u663e\u793a\u56fe\u5f62\r\nprint(g)\r\n\r\n# \u4fdd\u5b58\u4e3aPDF\u6587\u4ef6\r\nggsave(\"survival_curves.pdf\", g$plot, width = 10, height = 6)<\/code><\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/yunshangtulv.com.cn\/wp-content\/uploads\/2023\/04\/1681743301374.webp\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u4ee5\u4e0b\u662f\u4ee3\u7801\u89e3\u91ca\uff1a<\/p>\n<ol>\n<li>\u52a0\u8f7d<code>survival<\/code>\u548c<code>survminer<\/code>\u5305\u3002<\/li>\n<li>\u52a0\u8f7d<code>lung<\/code>\u6570\u636e\u96c6\u5e76\u663e\u793a\u524d\u51e0\u884c\u6570\u636e\u3002<\/li>\n<li>\u4f7f\u7528<code>Surv()<\/code>\u51fd\u6570\u521b\u5efa\u751f\u5b58\u5bf9\u8c61\uff0c\u5305\u542b\u65f6\u95f4\u548c\u72b6\u6001\u3002<\/li>\n<li>\u4f7f\u7528<code>survfit()<\/code>\u51fd\u6570\u62df\u5408\u751f\u5b58\u6570\u636e\uff0c\u4ee5\u6027\u522b\uff08sex\uff09\u4f5c\u4e3a\u5206\u7ec4\u53d8\u91cf\u3002<\/li>\n<li>\u4f7f\u7528<code>ggsurvplot()<\/code>\u51fd\u6570\u7ed8\u5236\u751f\u5b58\u66f2\u7ebf\uff0c\u6dfb\u52a0\u98ce\u9669\u8868\u3001\u7f6e\u4fe1\u533a\u95f4\u3001P\u503c\u3001\u56fe\u4f8b\u7b49\u5143\u7d20\u3002<\/li>\n<li>\u6dfb\u52a0cutoff\u7ebf\uff0c\u6b64\u5904\u4f7f\u75281000\u5929\u4f5c\u4e3acutoff\u3002<\/li>\n<li>\u663e\u793a\u5e76\u4fdd\u5b58\u56fe\u5f62\u4e3aPDF\u6587\u4ef6\u3002<\/li>\n<\/ol>\n<\/div>\n<h2><strong>\u4e24\u53d8\u91cf\u7ec4\u5408\u5206\u7ec4\u7684\u751f\u5b58\u66f2\u7ebf\u56fe<\/strong><\/h2>\n<\/div>\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert dark\">\n<p>\u4e3a\u4e86\u6f14\u793a\u8fd9\u4e2a\u4f8b\u5b50\uff0c\u6211\u4eec\u5c06\u4f7f\u7528R\u4e2d\u7684<code>survival<\/code>\u548c<code>ggplot2<\/code>\u5305\uff0c\u5e76\u4f7f\u7528<code>lung<\/code>\u6570\u636e\u96c6\uff0c\u8fd9\u662f\u4e00\u4e2a\u5173\u4e8e\u80ba\u764c\u60a3\u8005\u751f\u5b58\u65f6\u95f4\u7684\u6570\u636e\u96c6\u3002<code>lung<\/code>\u6570\u636e\u96c6\u5305\u542b\u4e86\u60a3\u8005\u7684\u751f\u5b58\u65f6\u95f4\uff08time\uff09\u3001\u751f\u5b58\u72b6\u6001\uff08status\uff09\u3001\u5e74\u9f84\uff08age\uff09\u548c\u6027\u522b\uff08sex\uff09\u7b49\u4fe1\u606f\u3002\u6211\u4eec\u5c06\u7ed8\u5236\u5e74\u9f84\u548c\u6027\u522b\u5206\u7ec4\u7684\u751f\u5b58\u66f2\u7ebf\uff0c\u5e76\u6dfb\u52a0\u7f6e\u4fe1\u533a\u95f4\u548ccutoff\u3002<\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"p-4 overflow-y-auto\">\n<pre class=\"corepress-code-pre\"><code>\r\n\r\n# \u5b89\u88c5\u5e76\u52a0\u8f7d\u6240\u9700\u7684\u5305\r\nif (!requireNamespace(\"survival\", quietly = TRUE))\r\ninstall.packages(\"survival\")\r\nlibrary(survival)if (!requireNamespace(\"ggplot2\", quietly = TRUE))\r\ninstall.packages(\"ggplot2\")\r\nlibrary(ggplot2)if (!requireNamespace(\"survminer\", quietly = TRUE))\r\ninstall.packages(\"survminer\")\r\nlibrary(survminer)\r\n\r\n# \u52a0\u8f7dlung\u6570\u636e\u96c6\uff0c\u5e76\u663e\u793a\u524d\u51e0\u884c\r\ndata(lung)\r\nhead(lung)\r\n\r\n\r\n\r\n\u00a0# \u521b\u5efa\u5206\u7ec4\u53d8\u91cf lung$group &lt;- factor( (lung$sex == 1 &amp; lung$age &gt;= 65) * 1 + (lung$sex == 1 &amp; lung$age &lt; 65) * 2 + (lung$sex == 2 &amp; lung$age &gt;= 65) * 3 + (lung$sex == 2 &amp; lung$age &lt; 65) * 4, labels = c(\"\u5973\u6027 - \u9ad8\u9f84\", \"\u5973\u6027 - \u4f4e\u9f84\", \"\u7537\u6027 - \u9ad8\u9f84\", \"\u7537\u6027 - \u4f4e\u9f84\") )\r\n\r\n# \u751f\u5b58\u5206\u6790\r\n# \u4f7f\u7528time\uff08\u751f\u5b58\u65f6\u95f4\uff09\u548cstatus\uff08\u751f\u5b58\u72b6\u6001\uff09\u521b\u5efaSurv\u5bf9\u8c61\r\n# status = 1\u8868\u793a\u751f\u5b58\uff0cstatus = 2\u8868\u793a\u6b7b\u4ea1\r\nlung_surv &lt;- Surv(time = lung$time, event = lung$status == 2)\r\n\r\n# \u4f7f\u7528Cox\u6bd4\u4f8b\u98ce\u9669\u6a21\u578b\u8fdb\u884c\u751f\u5b58\u5206\u6790\r\ncox_model &lt;- coxph(lung_surv ~ age + sex, data = lung)\r\n\r\n# \u7ed8\u5236\u751f\u5b58\u66f2\u7ebf\r\nggsurvplot(\r\ncox_model, # Cox\u6a21\u578b\r\ndata = lung, # \u6570\u636e\u96c6\r\nrisk.table = TRUE, # \u663e\u793a\u98ce\u9669\u8868\r\npval = TRUE, # \u663e\u793ap\u503c\r\nconf.int = TRUE, # \u663e\u793a\u7f6e\u4fe1\u533a\u95f4\r\nbreak.time.by = 100, # \u65f6\u95f4\u523b\u5ea6\u95f4\u9694\r\nggtheme = theme_bw(), # \u4f7f\u7528\u9ed1\u767d\u4e3b\u9898\r\nxlab = \"\u65f6\u95f4\uff08\u5929\uff09\", # x\u8f74\u6807\u7b7e\r\nylab = \"\u751f\u5b58\u6982\u7387\", # y\u8f74\u6807\u7b7e\r\ntitle = \"\u751f\u5b58\u66f2\u7ebf\uff08\u5e74\u9f84\u548c\u6027\u522b\u5206\u7ec4\uff09\", # \u56fe\u6807\u9898\r\nlegend.title = \"\u7ec4\u522b\", # \u56fe\u4f8b\u6807\u9898\r\nlegend.labs = c(\"\u5973\u6027 - \u9ad8\u9f84\", \"\u5973\u6027 - \u4f4e\u9f84\", \"\u7537\u6027 - \u9ad8\u9f84\", \"\u7537\u6027 - \u4f4e\u9f84\"), # \u56fe\u4f8b\u6807\u7b7e\r\nylim = c(0, 1), # y\u8f74\u8303\u56f4\r\npalette = c(\"#E69F00\", \"#56B4E9\", \"#009E73\", \"#F0E442\"), # \u989c\u8272\u8bbe\u7f6e\r\ncensor = TRUE, # \u663e\u793acensor\u70b9\r\nfontsize = 3, # \u5b57\u4f53\u5927\u5c0f\r\ncutoff = c(\"age=65\", \"sex=1\") # cutoff\u8bbe\u7f6e\r\n) -&gt; plot\r\n\r\n# \u4fdd\u5b58\u4e3aPDF\u6587\u4ef6\r\nggsave(file = \"Survival_curve.pdf\", plot = plot, width = 10, height = 7)<\/code><\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<p>\u8fd9\u4e2a\u793a\u4f8b\u5c06\u751f\u6210\u4e00\u4e2a\u751f\u5b58\u66f2\u7ebf\u56fe\uff0c\u5c55\u793a\u4e86\u5e74\u9f84\u548c\u6027\u522b\u5206\u7ec4\u7684\u751f\u5b58\u6982\u7387\u3002\u66f2\u7ebf\u5468\u56f4\u7684\u9634\u5f71\u533a\u57df\u8868\u793a\u7f6e\u4fe1\u533a\u95f4\u3002cutoff\u503c\uff08\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\u662f\u5e74\u9f84=65\u548c\u6027\u522b=1\uff09\u5c06\u6570\u636e\u5206\u4e3a\u56db\u7ec4\uff1a\u5973\u6027-\u9ad8\u9f84\u3001\u5973\u6027-\u4f4e\u9f84\u3001\u7537\u6027-\u9ad8\u9f84\u548c\u7537\u6027-\u4f4e\u9f84\u3002\u4e0b\u9762\u8be6\u7ec6\u89e3\u91ca\u6bcf\u4e00\u884c\u4ee3\u7801\uff1a<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert dark\">\n<ol>\n<li>\u5b89\u88c5\u5e76\u52a0\u8f7d\u6240\u9700\u7684\u5305\uff1a<code>survival<\/code>\u3001<code>ggplot2<\/code>\u548c<code>survminer<\/code>\u3002<\/li>\n<li>\u52a0\u8f7d<code>lung<\/code>\u6570\u636e\u96c6\uff0c\u5e76\u663e\u793a\u524d\u51e0\u884c\u3002<\/li>\n<li>\u4f7f\u7528<code>lung<\/code>\u6570\u636e\u96c6\u4e2d\u7684<code>time<\/code>\uff08\u751f\u5b58\u65f6\u95f4\uff09\u548c<code>status<\/code>\uff08\u751f\u5b58\u72b6\u6001\uff09\u5217\u521b\u5efa\u4e00\u4e2a<code>Surv<\/code>\u5bf9\u8c61\u3002<\/li>\n<li>\u4f7f\u7528Cox\u6bd4\u4f8b\u98ce\u9669\u6a21\u578b\u8fdb\u884c\u751f\u5b58\u5206\u6790\u3002\u6a21\u578b\u57fa\u4e8e<code>lung_surv<\/code>\u3001\u5e74\u9f84\uff08<code>age<\/code>\uff09\u548c\u6027\u522b\uff08<code>sex<\/code>\uff09\u3002<\/li>\n<li>\u4f7f\u7528<code>ggsurvplot()<\/code>\u51fd\u6570\u7ed8\u5236\u751f\u5b58\u66f2\u7ebf\uff1a\n<ul>\n<li><code>cox_model<\/code>\uff1a\u8f93\u5165\u7684Cox\u6a21\u578b\u3002<\/li>\n<li><code>data<\/code>\uff1a\u6570\u636e\u96c6\u3002<\/li>\n<li><code>risk.table<\/code>\uff1a\u662f\u5426\u663e\u793a\u98ce\u9669\u8868\u3002<\/li>\n<li><code>pval<\/code>\uff1a\u662f\u5426\u663e\u793ap\u503c\u3002<\/li>\n<li><code>conf.int<\/code>\uff1a\u662f\u5426\u663e\u793a\u7f6e\u4fe1\u533a\u95f4\u3002<\/li>\n<li><code>break.time.by<\/code>\uff1a\u65f6\u95f4\u523b\u5ea6\u95f4\u9694\u3002<\/li>\n<li><code>ggtheme<\/code>\uff1a\u7ed8\u56fe\u4e3b\u9898\u3002<\/li>\n<li><code>xlab<\/code>\u3001<code>ylab<\/code>\uff1ax\u8f74\u548cy\u8f74\u6807\u7b7e\u3002<\/li>\n<li><code>title<\/code>\uff1a\u56fe\u6807\u9898\u3002<\/li>\n<li><code>legend.title<\/code>\uff1a\u56fe\u4f8b\u6807\u9898\u3002<\/li>\n<li><code>legend.labs<\/code>\uff1a\u56fe\u4f8b\u6807\u7b7e\u3002<\/li>\n<li><code>ylim<\/code>\uff1ay\u8f74\u8303\u56f4\u3002<\/li>\n<li><code>palette<\/code>\uff1a\u66f2\u7ebf\u989c\u8272\u8bbe\u7f6e\u3002<\/li>\n<li><code>censor<\/code>\uff1a\u662f\u5426\u663e\u793acensor\u70b9\u3002<\/li>\n<li><code>fontsize<\/code>\uff1a\u5b57\u4f53\u5927\u5c0f\u3002<\/li>\n<li><code>cutoff<\/code>\uff1a\u8bbe\u7f6ecutoff\u503c\uff08\u5e74\u9f84\u548c\u6027\u522b\uff09\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u4f7f\u7528<code>ggsave()<\/code>\u51fd\u6570\u5c06\u56fe\u4fdd\u5b58\u4e3aPDF\u6587\u4ef6\uff0c\u6307\u5b9a\u6587\u4ef6\u540d\u3001\u7ed8\u56fe\u5bf9\u8c61\u548c\u56fe\u7247\u5c3a\u5bf8\u3002<\/li>\n<\/ol>\n<p>\u8fd9\u4e2a\u793a\u4f8b\u5c55\u793a\u4e86\u5982\u4f55\u4f7f\u7528R\u8bed\u8a00\u7ed8\u5236\u751f\u5b58\u66f2\u7ebf\uff0c\u5e76\u6839\u636e\u5e74\u9f84\u548c\u6027\u522b\u5206\u7ec4\u3002\u56fe\u4e2d\u8fd8\u663e\u793a\u4e86\u7f6e\u4fe1\u533a\u95f4\u548ccutoff\u503c\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4e24\u7ec4\u95f4\u5e26\u7f6e\u4fe1\u533a\u95f4\u7684\u751f\u5b58\u66f2\u7ebf \u4ee5\u4e0b\u662f\u4e00\u4e2a\u4f7f\u7528R\u8bed\u8a00\u548csurvival\u53caggplot2\u5305\u7ed8\u5236\u4e24\u7ec4\u95f4\u5e26\u7f6e\u4fe1\u533a\u95f4\u7684\u751f\u5b58 [&hellip;]<\/p>\n","protected":false},"author":111,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-432","post","type-post","status-publish","format-standard","hentry","category-r"],"_links":{"self":[{"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=\/wp\/v2\/users\/111"}],"replies":[{"embeddable":true,"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=432"}],"version-history":[{"count":0,"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/432\/revisions"}],"wp:attachment":[{"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yunshangtulv.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}