【问题标题】:Reactive fileInput() Shiny App with Leaflet带有 Leaflet 的反应式 fileInput() 闪亮的应用程序
【发布时间】:2018-06-04 18:26:19
【问题描述】:

我认为这应该很容易解决。

我在 R 中创建了一个简单的程序,将eBird 用户的数据绘制在传单地图上,他们所要做的就是上传他们的 eBird 数据的 csv。

我的代码包含在这里:MY CODE

我已经布置好了应用程序,但在使用来自fileInput() 的输入时遇到了困难。目前,当我点击“运行应用程序”时,会打开一个窗口片刻,然后关闭并引发错误。我在上面链接的代码末尾包含了错误。

您可以在此处查看示例数据:SAMPLE DATA

我应该如何格式化从 ui 输入的文件以供服务器使用?

myData = reactive(input$MyEBirdData_in)

【问题讨论】:

    标签: r csv shiny leaflet reactive


    【解决方案1】:

    myData 是一个反应变量,在代码中您需要将其视为反应变量。

    例如这一行:

    df0 = data.frame(myData$Submission.ID, myData$Latitude, myData$Longitude)
    

    需要:

    df0 = reactive({data.frame(myData()$Submission.ID, myData()$Latitude, myData()$Longitude)
    })
    

    通过应用程序等等。而不是包装每个单独的语句,尽管您可以将所有内容作为包装器放在渲染传单函数中:

    output$myMap = renderLeaflet({
      df0 = data.frame(myData()$Submission.ID, myData()$Latitude, myData()$Longitude)
      df = unique(df0)
      names(df)[2] = 'latitude'
      names(df)[3] = 'longitude'
    
      circleIcon = makeIcon(
        iconUrl = "http://www.clker.com/cliparts/Q/l/D/8/k/m/red-circle-icon-md.png",
        iconWidth = 7, iconHeight = 7)
    
      eBirdMap = leaflet(data = df) %>% addProviderTiles(providers$CartoDB.Positron) %>%
        addMarkers(icon = circleIcon)
    
      eBirdMap
    })
    

    编辑:忘记将反应变量引用为variable()

    【讨论】:

      猜你喜欢
      • 2014-10-04
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2017-07-27
      • 2019-08-07
      • 2021-12-18
      相关资源
      最近更新 更多