在闪亮的应用程序中显示R函数文档

时间:2019-02-11 02:13:01

标签: r shiny

我正在构建一个闪亮的应用程序,我需要一个选项卡面板来显示RecordLinkage软件包功能之一的R Documentation,以便用户可以选择其参数选项。

我尝试过

library(shiny)
library(RecordLinkage)

ui <- fluidPage(

tabPanel("Literature of functions",

                  selectInput(
                    "literatureChoice",
                    "Choose a function : ",
                    choices = c("compare.dedup",
                                "compare.linkage")
                  ),

                  textOutput("literatureOutput")
         ),

server <- function(input, output) {
  output$literatureOutput <- renderText({
    ?compare.linkage
  })
}

但是它没有显示任何文档。 我知道?compare.linkage 会显示在RStudio的帮助面板中,而不是控制台中。

请问对此有什么解决方案? 干杯

1 个答案:

答案 0 :(得分:1)

R帮助文档存储在Rd对象中。我们需要一种获取该对象并将其呈现为Shiny的方法。

我们借助Rd软件包中的Rd_fun()获取gbRd对象。

然后,我们使用Rd2HTML将文件解析为html。该文件保存在temp目录中,并读回R。

该示例适用于reactive()软件包中的shiny函数,将其替换为所需的任何函数。

library(shiny)
library(gbRd)
library(tools)


ui <- fluidPage(

  tabPanel("Literature of functions",

           selectInput(
             "literatureChoice",
             "Choose a function : ",
             choices = c("compare.dedup",
                         "compare.linkage")
           ),

           htmlOutput("literatureOutput")
  )
)

server <- function(input, output) {
  output$literatureOutput <- renderText({
    temp = Rd2HTML(Rd_fun("reactive"),out = tempfile("docs"))
    content = read_file(temp)
    file.remove(temp)
    content
  })
}

shinyApp(ui,server)