我有两个数据帧,每个数据帧每个ID有多行.我需要根据第一个数据帧的ID和日期从第二个数据帧返回最接近的日期和相关数据 - 将相关数据添加到第一个数据帧.这也必须与NA第二个数据帧中的s一起使用.示例数据:
set.seed(42)
df1 <- data.frame(ID = sample(1:3, 10, rep=T), dateTarget=(strptime((paste
(sprintf("%02d", sample(1:30,10, rep=T)), sprintf("%02d", sample(1:12,10, rep=T)),
(sprintf("%02d", sample(2013:2015,10, rep=T))), sep="")),"%d%m%Y")), Value=sample(15:100, 10, rep=T))
df2 <- data.frame(ID = sample(1:3, 10, rep=T), dateTarget=(strptime((paste
(sprintf("%02d", sample(1:30,20, rep=T)), sprintf("%02d", sample(1:12,20, rep=T)),
(sprintf("%02d", sample(2013:2015,20, rep=T))), sep="")),"%d%m%Y")), ValueMatch=sample(15:100, 20, rep=T))
Run Code Online (Sandbox Code Playgroud)
从base优先的东西- split和apply家庭的混合物?
决赛桌看起来像这样:
ID dateTarget Value dateMatch ValueMatch
1 3 22-02-15 52 09-03-15 94
2 1 29-12-14 18 06-12-14 88
3 3 08-12-15 98 06-07-15 48
4 …Run Code Online (Sandbox Code Playgroud) 我闪亮的应用程序中的数据需要几秒钟的时间来处理。\n我有一个下载按钮,我希望它在数据准备好之前不可单击,或者让下载处理程序等待准备好。\n目前单击下载5 秒前按下按钮会返回默认的 html 文件,5 秒后它会按预期运行。
\n\n我当前的解决方案是使用`shinyjs::hide/show。I\xe2\x80\x99ve 在下面显示了这一点。
\n\n这是最佳实践吗?另外,为什么一shinyjs::useShiny()开始呢?它似乎是那个包所独有的。
ui <- fluidPage(\nshinyjs::useShiny(),\n shinyjs::hidden(downloadButton("downloadData", "Download"))\n)\n\nserver <- function(input, output) {\n # Our dataset\n data <- mtcars\n\nif(is.null(mtcars)){shinyjs::hide(\xe2\x80\x9cdownloadData\xe2\x80\x9d)}\nelse{shinyjs::show(\xe2\x80\x9cdownloadData\xe2\x80\x9d)}\n\n output$downloadData <- downloadHandler(\n filename = function() {\n paste("data-", Sys.Date(), ".csv", sep="")\n },\n content = function(file) {\n write.csv(data, file)}\n )\n}\n\nshinyApp(ui, server)\nRun Code Online (Sandbox Code Playgroud)\n