gpt4 book ai didi

r - Shiny - 在数据表中显示 URL

转载 作者:行者123 更新时间:2023-12-04 22:46:38 24 4
gpt4 key购买 nike

我有一个来自 DT 包的数据表,其中包含多个列,其中一个包含 URL。有没有办法让这些 URL 显示为用户可以在 Shiny 应用程序中单击的超链接?此外,如果 URL 非常长(比如第 4 个条目的随机谷歌搜索),是否可以只显示前 25 个字符而不破坏超链接的功能?

一些示例代码如下。

require(DT)
require(shiny)

web_names <- c("google", "yahoo", "Stack Overflow", "Random Google Search")
url <- c( "https://www.google.com/", "https://www.yahoo.com/", "https://stackoverflow.com/", "https://www.google.com/search?q=random+google+search&oq=random+google+search&aqs=chrome..69i57j0l5.3264j0j7&sourceid=chrome&ie=UTF-8")
websites <- data.frame(web_names, url)

ui <- fluidPage(
DT::dataTableOutput("websitesTable")
)


server<-function(input,output,session) {
output$websitesTable <- DT::renderDataTable({datatable({websites})})
}

shinyApp(ui=ui, server=server)

更新:根据 Ryan Morton 的建议帖子,我尝试调整代码。我的问题现在是用户创建的 createLink 函数中包含的 sprintf 函数。链接按钮出现,但没有转到所需位置。
#app.R#

library(shiny)

web_names <- c("google", "yahoo", "Stack Overflow", "Random Google Search")
url <- c( "https://www.google.com/", "https://www.yahoo.com/", "https://stackoverflow.com/", "https://www.google.com/search?q=random+google+search&oq=random+google+search&aqs=chrome..69i57j0l5.3264j0j7&sourceid=chrome&ie=UTF-8")
websites <- data.frame(web_names, url)
createLink <- function(val) {
sprintf('<a href="" target="_blank" class="btn btn-primary">Info</a>', val)
}

websites$url_link <- createLink(websites$url)

ui <- fluidPage(
titlePanel("Table with Links!"),
sidebarLayout(
sidebarPanel(
h4("Click the link in the table to go to the url listed.")
),
mainPanel(
dataTableOutput('table1')
)
)
)

server <- function(input, output) {

output$table1 <- renderDataTable({ datatable({websites})
return(websites)

}, escape = FALSE)
}

shinyApp(ui, server)

最佳答案

稍微调整提供的代码,它应该会产生所需的输出:

createLink <- function(val) {
sprintf(paste0('<a href="', URLdecode(val),'" target="_blank">', substr(val, 1, 25) ,'</a>'))
}
websites$url <- createLink(websites$url)

HTML 是这样工作的: <a href="LINK", otherOptions,...> Linktext </a>因此,您可以将链接与 paste0() 粘贴在一起和 substr() .

关于r - Shiny - 在数据表中显示 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44571001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com