我正在尝试在R闪亮中打印一个表,但是,它会继续打印表名而不是表。表名保存为反应变量,然后放入渲染表,但它只是保持打印表名。
我该如何解决这个问题?
server=function(input, output){
cord <- reactive({matrix(c(input$long,input$lat),nrow=1,ncol=2)})
ans=reactive({distHaversine(c(b[1,2],b[1,3]),c(cord()[,1],cord()[,2]))})
for (i in 1:15){
distance=reactive({distHaversine(c(b[i,2],b[i,3]),c(cord()[,1],cord()[,2]))})
test=reactive({
if(distance() < ans())
{
ans()=distance()
name=reactive({CO[i,1]})
}
})
}
data=reactive({name()})
output$table<-renderTable({data()})
}
shinyApp(ui=ui,server=server)
答案 0 :(得分:0)
没有任何数据或任何想法真的是你想要做的事情很难提供帮助,据说是通过推测你想要做什么而继续我的尝试。我已经整理了一下并添加了req()
library(shiny)
ui <- fluidPage(renderTable("table"))
server <- function(input, output, session){
v <- reactiveValues()
cord <- reactive({
req(input$long)
req(input$lat)
mc <- matrix(c(input$long,input$lat),nrow=1,ncol=2)
v$ans <- distHaversine(mc(b[1,2],b[1,3]),c(mc[,1],mc[,2]))
mc
})
data <- reactive({
for(i in 1:15){
distance <- distHaversine(c(b[i,2],b[i,3]),c(cord()[,1],cord()[,2]))
if(distance < v$ans){
v$ans <- distance
return(CO[i,1])
}
}
})
output$table <- renderTable({
data()
})
}
shinyApp(ui=ui,server=server)