我有一个csv文件,我上传到一个闪亮的应用程序。在其他信息中,csv文件包含一列名称(输入)和一列与每个名称相关联的唯一ID。基本上我想要发生的是每次用户选择不同的名称时,app会获取相应的ID并将其插入到URL中以显示PNG图像作为输出。例如,假设用户选择名称" Joe Smith"而Joe的唯一ID是" smithj01"。我需要应用程序插入" smithj01"到一个URL,否则总是相同,然后显示乔的图像。如果用户然后选择" John Doe"约翰的唯一身份证是" doej01"我需要应用程序插入" doej01"进入相同的URL以显示John的图像。
我已尝试在下面的代码中编写一个执行此功能的功能,但它仍然只显示带有问号的蓝框,图像应显示在其中。
我已经一次又一次地尝试自己解决这个问题,查看了许多其他帖子和示例代码,但不能,对于我的生活,想出这个。请帮忙!非常感谢你!
library(shiny)
injury <- read.csv("injury_app.csv", stringsAsFactors = FALSE)
"player_id" = "ID"
player_photo_url = function(player_id) {
paste0("http://ssref.net/scripts/image_resize.cgi?min=200&url=https://d2cwpp38twqe55.cloudfront.net/req/201612101/images/players/", player_id,".png")
}
ui <- fluidPage(
titlePanel("Title Goes Here"),
sidebarLayout(
sidebarPanel(
selectInput("Player", "Player",
choices = c("Enter a player..." = "", injury$Player))
),
mainPanel(
uiOutput("image")
)
)
)
server <- function(input, output) {
current_player = reactive({
req(input$Player)
})
output$image <- renderUI({tags$img(src = player_photo_url(current_player()["player_id"]))
})
}
shinyApp(ui = ui, server = server)
答案 0 :(得分:0)
你有一些奇怪的事情发生,但最令人担忧的事情似乎是你试图选择所选玩家名称的ID。假设csv injury
作为数据帧读入,这应该有效:
library(shiny)
injury <- read.csv("injury_app.csv", stringsAsFactors = FALSE)
uniq_players <- sort(unique(injury$Player))
ui <- fluidPage(
titlePanel("Title Goes Here"),
sidebarLayout(
sidebarPanel(
selectInput("Player", "Player",
choices = c("Enter a player..." = "", uniq_players))
),
mainPanel(
uiOutput("image")
)
)
)
server <- function(input, output) {
c_id <- reactive({
shiny::validate(
shiny::need(input$Player, "Select a player!")
)
injury[injury$Player == input$Player, "ID"]
})
c_url <- reactive({
paste0("http://ssref.net/scripts/image_resize.cgi?min=200&url=https://d2cwpp38twqe55.cloudfront.net/req/201612101/images/players/", c_id(), ".png")
})
output$image <- renderUI({
tags$img(src = c_url())
})
}
shinyApp(ui = ui, server = server)