【发布时间】:2019-06-18 08:24:02
【问题描述】:
raw data 我正在创建一个 Rshiny 应用程序,它允许用户上传一些临床数据,并根据他们打开的选项卡查看几个不同的图。其中包括折线图、饼图和马赛克图。我可以根据上传的数据和用户输入查看折线图和饼图,但无法显示马赛克图。我收到一条错误消息,提示“找不到对象‘输入’。”
我尝试在 R 中使用 ggmosaic(geom_mosaic) 和 structable 包来显示绘图。在我感兴趣的数据表中,有 5 列:REF(2x2 列联表的参考方法结果,它是二进制的——POS 或 NEG 临床结果),结果(4 个差异值:真阳性、假阴性、真阴性,假阳性)、值(每个结果的患者数量)、样本类型(患者样本的类型——NS、NP、总体是此列的 3 个可能数据值)和比较器(POS 或 NEG 临床结果)。在括号中,我已经包含了人们对每一列的期望值的类型。此外,对于我的 R 闪亮马赛克应用程序,我在左侧有几个用户输入,一旦用户选择它们就可以构建应用程序:为 REF 列选择输入,为样本类型列选择输入,选择输入为比较器。我在服务器函数中编写了代码,该函数使用这 3 个输入来构建马赛克图。
编辑:我已在顶部标题为“原始数据”的链接中附加了我的原始数据。
马赛克图数据表 - 从饼图中获取数据,但以#不同的视觉格式显示它
MosaicDF <- reactive({
#display mosaic
Mosaic_filtered <- select(PieData_extracted(),-c(3,5:7))
#data transformation
names(Mosaic_filtered)[1]<-"REF"
Mosaic_filtered$SampleType <- "NS"
Mosaic_filtered$Comparator <- c("POS","NEG","NEG","POS")
Mosaic_filtered$REF <- c("POS","POS","NEG","NEG")
Mosaic_filtered$F2 <- factor(as.character(Mosaic_filtered$Value))
MYRaw <- Mosaic_filtered[rep(rownames(Mosaic_filtered),as.numeric(as.character(Mosaic_filtered$F2))), ]
MYRaw <- as.data.frame(MYRaw)
#update select input for mosaic plot
updateSelectInput(session, inputId = 'REF', label = 'Select Reference column',
choices = names(MYRaw), selected = "")
updateSelectInput(session, inputId = 'SampleType', label = 'Select Sample Type column',
choices = names(MYRaw), selected = "")
updateSelectInput(session, inputId = 'Comparator', label = 'Select Comparator column',
choices = names(MYRaw), selected = "")
return(MYRaw)
})
#display mosaic plot
output$mosaic <- renderPlot({
ggplot(data=MosaicDF())+geom_mosaic(aes(x=product(input$REF,input$Comparator),fill=input$REF))+labs(x="Comparator",y="REF")
})
}
我正在获取数据表(从中构建马赛克图)以显示为输出,但马赛克图本身不会显示。它说:
“错误:找不到对象输入”。
饼图数据表和饼图本身确实出现在此图的选项卡上。 (在 R shiny 应用程序中,每个不同的绘图都有 3 个选项卡,用户可以从中选择任何一个,从下拉菜单中选择一些输入,并允许根据输入自动构建应用程序)。
我想知道是否有办法修改我的反应数据表或绘图本身的代码 - 我应该更改 ggplot 的代码,还是为 Rshiny 格式使用不同的镶嵌包?
【问题讨论】:
-
您好。您能否分享您的数据或以其他方式创建可重现的示例?我知道你试图描述你在做什么,但我们很难重现。见这里:stackoverflow.com/help/minimal-reproducible-example
-
我在上面的描述中粘贴了一个链接,标题为“原始数据”,其中包含我的数据。
-
人们喜欢尝试运行你的代码并尝试改变不同的东西。在图像中包含数据并没有真正的帮助。
-
我无法将我的数据作为 Excel 文件上传,但我很乐意通过电子邮件分享。
标签: r ggplot2 shiny shiny-reactivity r-mosaic