热门标签 | 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,事情开始按预期正常工作。


推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
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社区 版权所有