有光泽 - 将输出表中的元素转换为链接

时间:2017-02-17 11:30:38

标签: shiny

我正在建立一个网站,允许用户访问一些实验数据。我在R MarkDown工作。

我是网络开发的新手,我不了解Javascript,因此我将搜索工具构建为Shiny应用程序,搜索结果以表格的形式显示,并带有结果名称和一些细节。

我想将名称转换为.rmd文档的链接,用户可以单击该文档以访问有关该结果的更多详细信息。

data=as.matrix(cbind(names=letters[1:10], position=1:10, val=runif(10)),)

ui <- fluidpage(
        sidebarPanel(
             textInput("name",label = "name", value = "")
        )

        mainPanel(tableOutput("res"))
        )

server <- function (input, output) { 
        searchedName=as.character(input$name)
        if (searchedName != "") {
           res.table=subset(data, data$names==searchedName)
        }
        output$res=renderTable({
                res=as.data.frame(cbind(res.table[,1],res.table[,2]))
                colnames(res)=c("name","position")
                return(res)
                }, align="c", colnames = T)
        }

我尝试了HTML (paste0("< a href=page.rmd>", res$name, "< /a>, collapse=""))并使用了tags$a(),但是一旦传递到输出表中,都没有被识别为html。

1 个答案:

答案 0 :(得分:2)

如果您可以使用a代替renderDataTable,则可以:

  • 使用renderTablepaste0

  • 将您的姓名变为链接
  • sprintfrenderDataTable

  • 一起使用

注意:我在代码中进行了一些更改,以便在escape=FALSE reactive中进行子集化。

renderDataTable