热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

有没有一种方法可以在反应/观察中使用嵌套的reactPoll来绘制依赖于DB和UI更改的图

对于我当前的需求,我需要绘制一些我从mongodb中获取的数据的图表,并且我正在使用reactPo

对于我当前的需求,我需要绘制一些我从mongodb中获取的数据的图表,并且我正在使用reactPoll到db来监视db中的更改。除此之外,我现在想在UI上添加一个日期过滤器,根据该过滤器情节将发生变化,因为我需要在输入日期输入reactvalue,但我无法实现它。在调试时,我发现嵌套的Reactor可能无法在内部使用reactPoll,因为reactPoll不会离开进程,因此输入值的更改不会影响reactPoll监视的数据。
这是我尝试过的代码的必需部分:

ui.R

shinyUI(fluidPage(
# Application title
titlePanel("ML API DASHBOARD"),fluidRow(
column(6,h4("API Status"),textOutput("checkAPIStatus")),column(6,h4("Daily Batch Count By Status"),dateRangeInput(inputId="daterange",label="Pick a Date Range:",start = Sys.Date()-30,end = Sys.Date()),plotOutput("BatchPlotByStatus"))
)
)

server.R

## COMPONENT 2: BatchPlotByStatus
checkNewBatchPlot <- function(){
coll = mongo(collection = mongocollection,url = mongourl)
# coll$count()
req(input$daterange)
print(input$daterange)
strWatch <- paste(as.character(coll$find('{}',fields = '{"_id":0,"End":1}',sort = '{"End":-1}',limit = 1)),as.character(input$daterange[1]),as.character(input$daterange[2]))
# here originially db change was supposed to get rerurned,# but I am returning values of daterange input along with change in db just to check change in date here itself,# but it was a bad idea and didn't work
print(strWatch)
strWatch
}
getFilteredData <- function(df){
print(colnames(df))
return(subset(df,as.Date.character(Date,format = "%m/%d/%Y") > as.character(format(input$daterange[1]),"%m/%d/%Y"),))
# currently only using startdate to check change in value
}
getNewBatchCompleted <- function(){
coll = mongo(collection = mongocollection,url = mongourl)
df = processBatchStatusData(coll$find())
df = df[,c('BatchNo','StartDate_IST','EndDate_IST','Status')]
df$StartDate_IST = format(as.Date(df$StartDate_IST),'%m/%d/%Y')
df2 = df %>%
group_by(Status,StartDate_IST) %>%
summarise(Count = n())
names(df2) = c('Status','Date','Count')
print(nrow(df2))
df2 <- getFilteredData(df2)
print(nrow(df2))
df2
}
plotData <- reactivePoll(intervalMillis = 5000,session = session,checkFunc = checkNewBatchPlot,valueFunc = getNewBatchCompleted)
batchPlot <- reactiveValues(
data = reactivePoll(intervalMillis = 5000,valueFunc = getNewBatchCompleted)
)
observe({
print("observe")
req(input$daterange)
print(batchPlot$data())
#batchPlot$data() <- batchPlot$data()
batchPlot$data()
})
#checkDateFilter <- function(){
# return(as.integer(input$daterange[1]) + as.integer(input$daterange[2]))
#}
output$BatchPlotByStatus <- renderPlot({
ggplot(batchPlot$data(),aes(x = Date,y = Count,group = Status)) +
geom_point(aes(color = Status)) +
geom_line(aes(color = Status)) +
geom_label(aes(label=Count,fill = Status)) +
# geom_text_repel(aes(label=Count)) +
theme(axis.text.x = element_text(angle = 90,hjust = 1)) +
xlab('Date(MM/DD/YYYY)')+
ylab('No.of Batches')
})

要绘制的最终数据如下:

Status Date Count

1 FAILURE 10/14/2019 2
2 FAILURE 10/15/2019 1
3 FAILURE 10/16/2019 4
4 FAILURE 10/22/2019 1
5 FAILURE 10/29/2019 3
6 FAILURE 10/30/2019 1
7 FAILURE 11/12/2019 4
8 SUCCESS 10/16/2019 1
9 SUCCESS 10/30/2019 5
10 SUCCESS 10/31/2019 12
11 SUCCESS 11/01/2019 20
12 SUCCESS 11/04/2019 22
13 SUCCESS 11/05/2019 12

我尝试了很多组合,但未能成功获得预期的结果。任何建议都会有很大帮助。



上面显示的代码是完全正确的并且可以正常运行。如果我们在ui.R中使用SubmitButton,则嵌套的reactPoll停止运行,这是SubmitButton的内部问题。我只是将submitButton更改为actionButton,事情开始按预期正常工作。


推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
author-avatar
gloriamm_520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有