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

R Shiny中使用renderUI输出多行文本异常问题问询

核心问题原因

  1. 语法作用域错误:renderUI函数的闭合大括号位置错误,拆分句子、生成HTML的逻辑被放到了renderUI的作用域之外,Shiny无法捕获到要输出的内容
  2. 逻辑错误:R语言中的for循环本身没有返回值,直接将for循环传入HTML()函数不会得到拼接后的字符串,只会返回空结果

修复后代码

output$Full_text = renderUI({
    my_text = my_df %>%
      filter(narrative_code == input$selected_narrative) %>%
      pull(narrative_text)
    # 拆分句子
    my_sentences = unlist(strsplit(my_text, "(?<=(\\.|\\?)\\s)", perl = TRUE))
    # 批量拼接<br/>标签,不需要for循环
    HTML(paste(my_sentences, collapse = "<br/>"))
})

补充说明

如果你需要每句都像示例一样包裹双引号,可以修改paste逻辑:

HTML(paste0('"', my_sentences, '"', collapse = "<br/>"))

这样输出的每句话都会独立换行,同时带双引号包裹,完全匹配你期望的展示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:06:01