r - 如何将 ShinyR 功能与 UI 集成?
问题描述
我正在尝试开发我的第一个小型 shinyR 应用程序,但它的 UI 不会与其功能正确集成。运行app后浏览文件时,该功能不执行。请在我的代码下方找到。我是这个领域的新手,我将非常感谢您的支持。
library(seqinr)
library(shiny)
# User interface
ui <- fluidPage(
titlePanel("Welcome to DotMatcher Plot App"),
sidebarLayout(
sidebarPanel (
fileInput("protein1",
label = "Choose a file",
multiple = FALSE,
accept =c("text", "fasta")),
fileInput( "protein2",
label = NULL,
multiple=FALSE,
accept =c("text", "fasta"))
),
# Outputs
mainPanel(
plotOutput(outputId = "plot")
)
)
)
)
# Server Function
server <- function(input, output) {
movies_subset1 <- reactive({
req(input$protein1)})
movies_subset2 <- reactive({
req(input$protein2)
})
gl<-pairwiseAlignment(pattern = movies_subset1, subject = movies_subset2)
output$plot <- renderPlot({
print (gl)
})
}
# App
shinyApp(ui = ui, server = server)
解决方案
无论何时使用反应式表达式,都必须使用方括号来获取该表达式的值。我添加了一个打印语句,以便您可以看到差异。代码现在应该可以工作了。但总的来说,由于您不操纵输入,因此无需在反应式表达式中进行包装。
library(seqinr)
library(shiny)
# User interface
ui <- fluidPage(
titlePanel("Welcome to DotMatcher Plot App"),
sidebarLayout(
sidebarPanel (
fileInput("protein1",
label = "Choose a file",
multiple = FALSE,
accept =c("text", "fasta")),
fileInput( "protein2",
label = NULL,
multiple=FALSE,
accept =c("text", "fasta"))
),
# Outputs
mainPanel(
plotOutput(outputId = "plot")
)
)
)
# Server Function
server <- function(input, output) {
seq1 <- reactive({
req(input$protein1)})
seq2 <- reactive({
req(input$protein2)
})
output$plot <- renderPlot({
print(seq1)
print(seq1())
dotPlot(seq1(), seq2(), wsize = 100, wstep = 100, nmatch = 100)
})
}
# App
shinyApp(ui = ui, server = server)
推荐阅读
- javascript - 按属性过滤对象数组并获取与其关联的 storeID
- python - 为什么我的烧瓶模板只扩展其包含之一?
- flutter - Flutter 侧边导航栏小部件
- sql-server - VB.NET - SQL Server 查询失败并显示“已经有一个打开的数据读取器关联”
- ruby-on-rails - 多租户应用程序的 Stripe Connect 重定向 uri 问题
- sql-server - SQL Server 在 Docker 容器中找不到备份文件
- android - 使用 getStream 的聊天和提要应用程序,具有自定义 UI
- autodesk-forge - 伪造 viewer.search() 函数奇怪的行为
- sql - 将一些行值转换为列
- google-cloud-build - 如何在 github 提交上获取 Google Cloud Build 的提交作者姓名