首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Sankey图中删除NA (flipPlots Sankey图)

从Sankey图中删除NA (flipPlots Sankey图)
EN

Stack Overflow用户
提问于 2021-06-15 09:57:29
回答 2查看 242关注 0票数 1

目前,我正努力用sankey图表来可视化晚期乳腺癌患者的抗癌治疗流程。

我为每一行治疗(beh1,beh2等)都有一个列,命名给定的治疗(6个选项或“其他”)。

然而,有些病人并没有接受我的df目前包含的所有6行治疗,因此在几个列中给出了一个N/A。

一个例子

代码语言:javascript
运行
复制
sankey <- data.frame(ID = c("1","2","3","4","5"),
                 Beh1 = c("TDM1","Capecitabine", "Capecitabine", "Eribulin", "TDM1"),
                 Beh2 = c("Capecitabine", "NA", "Taxane", "Eksperimentiel", "Taxane"),
                 Beh3 = c("Eribulin", "NA", "Eribulin", "Eribulin", "Eribulin"))

和图表

代码语言:javascript
运行
复制
    SankeyDiagram(sankey[-1],
          link.color = "Source",
          variables.share.values = TRUE,)

我希望它能显示出来:

任何帮助都将不胜感激。

亲切的问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-17 03:37:22

首先,我将转换您的data.frame,以便它包含因素而不是字符列和实际的NA值,而不是字符"NA"

代码语言:javascript
运行
复制
sankey <- data.frame(ID = c("1","2","3","4","5"),
                     Beh1 = c("TDM1","Capecitabine", "Capecitabine", "Eribulin", "TDM1"),
                     Beh2 = c("Capecitabine", NA, "Taxane", "Eksperimentiel", "Taxane"),
                     Beh3 = c("Eribulin", NA, "Eribulin", "Eribulin", "Eribulin"), 
                     stringsAsFactors = TRUE)

如果使用SankeyDiagram调用output.data.only = TRUE,则会得到该函数用于生成图表的节点和链接。然后,您可以编辑链接以排除涉及NAs的链接,并使用修改后的链接调用SankeyDiagram。将sinks.right = FALSE添加到SankeyDiagram调用可以确保"Beh1: Capecitabine“的第二个链接不会扩展到绘图的右侧。

代码语言:javascript
运行
复制
links.and.nodes <- SankeyDiagram(sankey[-1], link.color = "Source", output.data.only = TRUE, 
                                 variables.share.values = TRUE, sinks.right = FALSE)
links.and.nodes$links <- od$links[!is.na(od$links$group), ]
SankeyDiagram(links.and.nodes = links.and.nodes, link.color = "Source", 
              variables.share.values = TRUE, sinks.right = FALSE)

SankeyDiagram输出

票数 0
EN

Stack Overflow用户

发布于 2021-06-15 10:19:10

这是你想要的吗?

代码语言:javascript
运行
复制
library(tidyverse)
# require(devtools)
# install_github("Displayr/flipPlots")

sankey <- data.frame(ID = c("1","2","3","4","5"),
                     Beh1 = c("TDM1","Capecitabine", "Capecitabine", "Eribulin", "TDM1"),
                     Beh2 = c("Capecitabine", "NA", "Taxane", "Eksperimentiel", "Taxane"),
                     Beh3 = c("Eribulin", "NA", "Eribulin", "Eribulin", "Eribulin"))

sankey %>%
  dplyr::na_if("NA") %>% 
  tidyr::drop_na() %>%
  dplyr::select(-1) %>% 
  SankeyDiagram(link.color = "Source",
              variables.share.values = TRUE)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67984070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档