使用滑块从网站加载数据

问题描述

这里是新成员。 我试图在 shiny显示一个表格。我想从网站上发布的 csv 文件获取它的数据。此外,用户可以选择要加载此数据的年份范围。在这站点上,每一年都在一个单独的 csv 文件中。 我使用 purrr 通过使用 map_df 遍历每个文件名,它从每次迭代中获取结果并将它们行绑定到一个数据框。 这是我的代码

Years <- c(2013,2014,2015,2016,2017,2018,2019,2020,2021)
ui <- fluidPage(
    uIoUtput("moreControls"),textoutput("test"),DT::dataTableOutput("mytable")
)
server <- function(input,output) {
    
    output$moreControls <- renderUI({
        sliderInput("myslider",label = h4("Select years"),min = min(Years),max = max(Years),value = c(2013,2021),step=1)
    })
    
    output$test <- renderText({min(input$myslider):max(input$myslider)})
    
    inputdata <- reactive({
        try({
            return(
    years.names <- min(input$myslider):max(input$myslider),scrape_csv <- function(years.names){
        #create urls
        years.urls <- paste0("https://www.nbp.pl/kursy/Archiwum/archiwum_tab_a_",years.names,".csv")
        #read in file
        df <- read.csv((years.urls),sep = ";",dec=",",header=TRUE,stringsAsFactors=FALSE)
        return(df)
    }
    d1 <- years.names %>% map_df( scrape_csv ),d1 <- d1[-2],d1 <- d1[-c((length(d1)-3):length(d1))],mysub <- function(x) {sub(",".",x)}
    d <- (apply(d1,2,mysub )),d <- data.frame(apply(d,as.numeric)),colnames(d) <- gsub("X","",colnames(d)),d <-d[-c(1),],d <- as.data.frame(d),d$data <- as.Date(as.character(d$data),format="%Y%m%d"),d[,-1] <-round(d[,-1],2),ret <- d
            )
        },silent=T)
        
        return(dane)
    })   
         
    output$mytable = DT::renderDataTable({
        DT::datatable(  
            inputdata(),rownames = FALSE,options = list(
                scrollX = TRUE,pageLength = 10,lengthMenu = seq(from=10,by=10,to=100)
    ))
})    


            
}  
        
shinyApp(ui = ui,server = server)

当我在单独的 R 文件中运行负责读取 csv 的代码部分时:

years.names <- min(Years):max(Years),ret <- d

显然没有使用 years.names ,我用 years.names 然后程序正确运行。 有没有什么办法解决这一问题? 最好的问候

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)