将 data.table 的行值转换为传递相应行值的超链接
Turn row values of data.table into hyperlinks that pass corresponding row values
假设我有一个简单的 data.table 并且我想将值传递给 google 搜索:
library(shiny)
df1 %>% head()
A B
<ch> <ch>
1 apples link1
2 tomatoes link2
3 oranges link3
4 grapes link4
5 bananas link5
ui <- fluidPage(
titlePanel("Table with Links!"),
sidebarLayout(
sidebarPanel(
h4("Click the link in the table to see
a google search for fruit.")
),
mainPanel(
dataTableOutput('dbtable')
)
)
)
server <- function(input, output) {
createLink <- function(val) {
sprintf('<a href="https://www.google.com/%s">Info</a>',val)
}
output$dbtable <- DT::renderDataTable(DT::datatable({
df1$B <- createLink(df1$A)
return(df1)
}, escape = FALSE)
}
shinyApp(ui, server)
我希望能够将 B 列中的每一行都变成一个 hyperlink。
所有 link 都将转到同一网页,但是根据单击的 link,不同的值会传递到该网页的搜索栏中。
因此,当我单击 link1 时,google 将打开并传递 apples 作为搜索词。
目前我正在取回数据 table
中的 hyperlink 文本
我们可以创建 list
server <- function(input, output) {
createLink <- function(val) {
sprintf('<a href="https://www.google.com/#q=%s" target="_blank">Info</a>',val)
}
output$dbtable <- DT::renderDataTable({DT::datatable({
df1$B <- lapply(df1$A, createLink)
return(df1)
}, escape = FALSE)
})
}
shinyApp(ui, server)
-输出
假设我有一个简单的 data.table 并且我想将值传递给 google 搜索:
library(shiny)
df1 %>% head()
A B
<ch> <ch>
1 apples link1
2 tomatoes link2
3 oranges link3
4 grapes link4
5 bananas link5
ui <- fluidPage(
titlePanel("Table with Links!"),
sidebarLayout(
sidebarPanel(
h4("Click the link in the table to see
a google search for fruit.")
),
mainPanel(
dataTableOutput('dbtable')
)
)
)
server <- function(input, output) {
createLink <- function(val) {
sprintf('<a href="https://www.google.com/%s">Info</a>',val)
}
output$dbtable <- DT::renderDataTable(DT::datatable({
df1$B <- createLink(df1$A)
return(df1)
}, escape = FALSE)
}
shinyApp(ui, server)
我希望能够将 B 列中的每一行都变成一个 hyperlink。 所有 link 都将转到同一网页,但是根据单击的 link,不同的值会传递到该网页的搜索栏中。
因此,当我单击 link1 时,google 将打开并传递 apples 作为搜索词。 目前我正在取回数据 table
中的 hyperlink 文本我们可以创建 list
server <- function(input, output) {
createLink <- function(val) {
sprintf('<a href="https://www.google.com/#q=%s" target="_blank">Info</a>',val)
}
output$dbtable <- DT::renderDataTable({DT::datatable({
df1$B <- lapply(df1$A, createLink)
return(df1)
}, escape = FALSE)
})
}
shinyApp(ui, server)
-输出