表名而不是表显示R Shiny

时间:2018-03-05 13:30:05

标签: r shiny

我正在尝试在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)

1 个答案:

答案 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)