过滤数据的功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤数据的功能相关的知识,希望对你有一定的参考价值。

我使用从mysql表中获取的数据集(lst)。

基于datrangeinput,我应用了一个过滤器

dateRangeInput("daterange", "Date Range", start = min(lst$Record_Date), end = max(lst$Record_Date))


observeEvent(input$daterange, {
  st <- input$daterange[1]
  ed <- input$daterange[2]

  lst  <- lst %>%
    filter(Record_Date >= st &
           Record_Date <= ed)

}) 

当我在另一个函数中使用过滤后的“lst”时,“last”似乎再次未经过滤。

我应该在新的数据帧中对过滤后的数据进行子集化吗?

我实际上是试图避免这种情况来减少内存使用。

谢谢

答案

您可能有兴趣仔细研究有光泽的应用程序的范围规则和环境。

当你写“另一个函数”时,你可能也意味着在observeEvent()函数之外。然后,它是另一个环境,您必须将数据传递到其他环境。

你的例子:

 # inital data
 lst <- ...

filteredLst <- reactive(
  input$daterange
  isolate({
    st <- input$daterange[1]
    ed <- input$daterange[2]

    lst  <- lst %>%
      filter(Record_Date >= st &
            Record_Date <= ed)
    lst
  })
})

observe({
  lst # old data
  lst <- filteredLst() # filtered data in new environment
})

在环境和反应之间传递数据的详细信息:

https://shiny.rstudio.com/articles/reactivity-overview.html

有关范围的详细信息:

“定义对象的位置将决定对象的可见位置。”

详细解释可以在这里找到:https://shiny.rstudio.com/articles/scoping.html

以上是关于过滤数据的功能的主要内容,如果未能解决你的问题,请参考以下文章

js简洁代码片段

基于内部片段的graphql过滤器(gatsbyJS)

IOS开发-OC学习-常用功能代码片段整理

Huawei_Netconf_Ncclient

过滤作为 ViewPager 片段一部分的 ListView

将base64编码的Textmate片段过滤回文本