R 遇到错误:非数字矩阵范围
我写了一个Rshiny应用程序。在这里,用户输入一个基因列表,应用程序就从中创建了一个生物网络。示例输入如下所示。代码以shinyapp的形式作为R脚本运行。输入是文本而不是数字 研究了很多类似的问题,但没什么用处,我的输入是文本 非常感谢您的帮助R 遇到错误:非数字矩阵范围,r,shiny,shinydashboard,R,Shiny,Shinydashboard,我写了一个Rshiny应用程序。在这里,用户输入一个基因列表,应用程序就从中创建了一个生物网络。示例输入如下所示。代码以shinyapp的形式作为R脚本运行。输入是文本而不是数字 研究了很多类似的问题,但没什么用处,我的输入是文本 非常感谢您的帮助 library(shiny) library(shinydashboard) library(STRINGdb) sidebar <- dashboardSidebar( sidebarMenu( menuItem("Analysis", t
library(shiny)
library(shinydashboard)
library(STRINGdb)
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem("Analysis", tabName = "analysis")
))
body <- dashboardBody(
tabItems(
# Text Area Input for gene list
tabItem(tabName = "analysis",
fluidRow(
box(
title = "Input gene list here", status = "warning", width
= 6, textAreaInput("title1","",value = "", width =
'100%',rows=5),
actionButton("submit", "Submit")
)
),
fluidRow(
box(
title = "Stirng DB network", status = "warning", width = 8, plotOutput("stringplot")
)
)
)))
# User interface --
ui <- dashboardPage(
dashboardHeader(title = "Analysis", titleWidth = 300),
sidebar,
body
)
# Server logic
server <- function(input, output) {
subset_dataset <- eventReactive(input$submit,
{data.frame(strsplit(input$title1,split='[\r\n]'),col.names='genes')})
output$stringplot <- renderPlot({
string_db <- STRINGdb$new()
mapped_genes <- string_db$map(subset_dataset,subset_dataset()$genes,removeUnmappedRows = TRUE)
hits_2<-mapped_genes$STRING_id
string_db$plot_network(hits_2)})
}
shinyApp(ui = ui, server = server)
如果将
browser()
插入eventReactive
,则可以检查数据帧是否如下所示:
# c..BRAF....NF1....NRAS....ERBB3....FLT3....PIK3CA....PTEN....TP53... col.names
# 1 BRAF genes
# 2 NF1 genes
# 3 NRAS genes
# ...
您可以使用以下表达式来解决此问题:data.frame(genes=unlist(strsplit(输入$title1,split='[\r\n]'))
结果数据帧
:
# genes
# 1 BRAF
# 2 NF1
# 3 NRAS
# ...
我不熟悉该包,但在我看来,传递给string\u db$map
的参数不正确:
- 第一个参数:
data.frame
。在传递一个reactive
或eventReactive
时,您应该包括括号(例如:subset\u dataset()
)
- 第二个参数:使用字符串:(例如:
“genes”
)
这对我很有用:
mapped_基因
# genes
# 1 BRAF
# 2 NF1
# 3 NRAS
# ...