You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny应用输出仅在控制台显示、不在主面板展示的问题求助

问题原因及修复方案

你的代码存在以下几处核心问题导致输出无法展示在前端页面:

  • 函数调用不匹配:你自定义的取诗句函数名为Vector(首字母大写),但服务端调用时写的是小写的vector,实际调用了R内置的向量生成函数,没有执行你写的取诗句逻辑
  • 自定义函数无返回值:你写的Vector函数里仅用print()输出内容,print()只会将内容打印到控制台,不会把诗句作为返回值传给Shiny的渲染函数
  • 服务端语法错误:server函数的逻辑块应该用大括号{}包裹,你错误使用了圆括号()
  • 输入变量名错误:取第14行输入值时写的是input$14,实际应该是input$line14
  • 字符串拼接缺少换行配置:paste()函数没有指定换行参数,生成的诗句会挤在同一行
  • 侧边栏标签语法错误:h3("Build Your Poem"缺少闭合括号,会导致页面渲染异常

修正后的完整代码如下:

library(shiny) 
library(tidyverse)
Sonnets <- read_csv("https://blades.byu.edu/hon290/hon290cofwsonnets2021.text")
library(english)
# 改造自定义函数,添加返回值逻辑
get_poem <- function(mylines) {
  poem_lines <- c()
  for(i in 1:14) {
    line_text <- Sonnets %>%
      filter(sonnet==mylines[i] & line==i) %>%
      pull(text)
    poem_lines <- c(poem_lines, line_text)
  }
  # 返回带换行的完整诗句
  return(paste(poem_lines, collapse = "\n"))
}
# 修正server逻辑块括号为大括号
server = function(input, output) {
  output$q <- renderText({
    # 调用自定义函数,修正第14行输入变量名
    get_poem(c(input$line1, input$line2, input$line3, input$line4, input$line5, input$line6, input$line7, input$line8, input$line9, input$line10, input$line11, input$line12, input$line13, input$line14))
  })
}

ui<- fluidPage(
  titlePanel("City of Women Sonnets"), 
  tabsetPanel(
    tabPanel("Sonnet Generator By Line",
             sidebarLayout(
               sidebarPanel(
                 h3("Build Your Poem"),
                 fluidRow(
                   column(6, numericInput("line1", "Line 1", min=1, max=23, value=1)),
                   column(6, numericInput("line2", "Line 2", min=1, max=23, value=1)),
                   column(6, numericInput("line3", "Line 3", min=1, max=23, value=1)),
                   column(6, numericInput("line4", "Line 4", min=1, max=23, value=1)),
                   column(6, numericInput("line5", "Line 5", min=1, max=23, value=1)),
                   column(6, numericInput("line6", "Line 6", min=1, max=23, value=1)),
                   column(6, numericInput("line7", "Line 7", min=1, max=23, value=1)),
                   column(6, numericInput("line8", "Line 8", min=1, max=23, value=1)),
                   column(6, numericInput("line9", "Line 9", min=1, max=23, value=1)),
                   column(6, numericInput("line10", "Line 10", min=1, max=23, value=1)),
                   column(6, numericInput("line11", "Line 11", min=1, max=23, value=1)),
                   column(6, numericInput("line12", "Line 12", min=1, max=23, value=1)),
                   column(6, numericInput("line13", "Line 13", min=1, max=23, value=1)),
                   column(6, numericInput("line14", "Line 14", min=1, max=23, value=1)),
                 ))
               ),
               mainPanel(h3("poem"),
                         textOutput("q"))
             ))
  )
)
shinyApp(ui=ui, server=server)

内容的提问来源于stack exchange,提问作者Sannaco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:27:02