小编Dou*_*Fir的帖子

当有人停止输入1秒钟时触发功能

我有一个输入字段,当有人开始输入时会生成自动建议.用户无需模糊或点击提交按钮即可显示建议.

当有人停止输入时,我想运行一个功能来跟踪向用户显示哪些产品,以及当前输入字段中的文本字符串.

我添加了一个'input'事件监听器,但我无法正确理解逻辑.

我想doStuff()如果它自上一次输入事件以来已经至少1秒钟.麻烦的是,当用户开始输入时,我的脚本正在触发,因为它基于"更改"事件监听器.

而且我认为必须有一种比我现在做的更合乎逻辑的方式.

另外我担心'输入'事件会影响用户浏览器,因为它在每次击键时运行,也许有更好的方法?

不情愿地在下面显示我的代码块,即使它没有多大意义并且是我较弱的脚本时刻之一,更多地表明我一直在尝试不同的事情.宁愿选择忽略我一直使用的疯狂逻辑的解决方案.

我希望doStuff(e)当用户"停止在输入中输入文本"时,这不是一个确切的定义.用户何时被认为已停止输入?现在我说1秒钟.

不想使用更改事件,因为它错过了许多用户不模糊的事件.

更喜欢纯JS.

  var input = document.querySelector('#search_input');
  var newinput;
  var lastinput;
  var diff;

        input.addEventListener('input', function(e) {

          newinput = new Date();
          if(!lastinput) {
            lastinput = new Date()
          }
          diff = newinput - lastinput;
          if(diff > 500 && diff < 2000) {
            doStuff(e)
          }

          lastinput = newinput;

        }, false);
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events

0
推荐指数
1
解决办法
51
查看次数

使用 if() 在 dplyr 管道链中使用 select()

已经阅读了这两篇文章:

我正在使用 Shiny input$selector,如果用户选择了一个特定的值,我希望我的数据帧与其他情况不同。

这是一个链:

  filtered_funnel <-  reactive({
    lastmonth_funnel %>%
      filter(input$channel == "All" | Channel == input$channel) %>%
      filter(input$promo == "All" | Promo == input$promo) %>%

      ## HERE IS WHERE I'M STRUGGLING
      {if(input$promo != "none") select(., c("Channel", "Promo", "ShippingDetails", "Checkout", "Transactions"))} %>%


      gather(Funnel, Sessions, -Channel, -Promo) %>%
      group_by(Channel, Promo, Funnel) %>%
      summarise(Sessions = sum(Sessions))
  })
Run Code Online (Sandbox Code Playgroud)

如果用户输入不等于“none”,我想选择变量“Channel”、“Promo”、“ShippingDetails”、“Checkout”和“Transactions”。

我尝试了上面问题行的一些变体,但一直出现错误:

当我在管道链中尝试这个时

{if(input$promo != "none") select(., c("Channel", "Promo", "ShippingDetails", "Checkout", "Transactions"))} %>% 
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

警告:错误:所有 select() 输入必须解析为整数列位置。以下不做: * c("Channel", "Promo", …

r dplyr

0
推荐指数
1
解决办法
1723
查看次数

清除除一个变量rm之外的所有内容(list = ls())

我知道这rm(list = ls())将清除我的工作区.

我有一个数据框x,我想保留,同时从内存中删除其他所有内容.我怎样才能做到这一点?

rm(list = ls(!x)) #???
Run Code Online (Sandbox Code Playgroud)

r

0
推荐指数
1
解决办法
71
查看次数

映射一些数字列并为每个带有分组变量的箱线图

我想 purrr::map 一个 df 并为每一列生成一个带有分组变量的箱线图。尝试示例:

mtcars |> select(am, gear, carb) |> 
  map(~ ggplot() +
        geom_boxplot(aes(y = .x, fill = factor(mtcars$cyl))) +
        labs(title = .y))
Run Code Online (Sandbox Code Playgroud)

结果:

dots_list(..., title = title, subtitle = subtitle, Caption = Caption, 中的错误:...列表包含的元素少于 2 个

期望的结果:

  1. .x将是来自 df 的向量/场
  2. 使用本机管道占位符_,分配分组变量cyl
  3. 标题将是正在绘制的列的名称。我确信我记得.y以前曾在这里使用过

我如何 purrr::map 3 列 am、gear 和 carb,为每列生成一个按 cyl 分组/分割并使用 hte 本地管道的箱线图?

r ggplot2 purrr

0
推荐指数
1
解决办法
41
查看次数

标签 统计

r ×3

dplyr ×1

ggplot2 ×1

javascript ×1

javascript-events ×1

purrr ×1