问题描述
这里是新成员。 我试图在 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 (将#修改为@)