代码之家  ›  专栏  ›  技术社区  ›  Andrew Haynes

从R中第一次击键开始的用户输入时间

  •  3
  • Andrew Haynes  · 技术社区  · 8 年前

    查看用户从第一次击键开始在R中键入消息所需的时间。

    我可以使用以下函数 readline() scan() 为了获得用户输入,我可以使用 system.time() 要测量代码运行所需的时间:

    > system.time(readline())
    Test Message
       user  system elapsed 
       0.98    0.53   19.55
    

    然而,这些给出了总运行时间。如果我在键入之前等待15秒,这将反映在 系统时间()

    希望在控制台中实现这一点,但也愿意在必要时使用单独的窗口。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Andrew Haynes    7 年前

    我最近使用两个包的组合解决了这个问题- tictoc keypress .

    从…起 按键 您可以使用 keypress() 函数,等待用户输入,然后输出按下的键- 按键() 仅适用于命令行上的R,它支持大多数键,但不支持所有键。

    通过按键,你可以编写一个简单的 if 声明调用 tic() 函数来自 tictoc公司 .

    实例

    当我发布这个问题时,我想知道在按下“a”键后,一个人键入整个小写字母需要多长时间。

    require(tictoc)
    require(keypress)
    
    for(i in 1:26){
    
      a=keypress()
    
      if(a==letters[1])  tic()
      if(a==letters[26]) toc()
    
      cat(paste(a))
    }
    
    abcdefghijklmnopqrstuvwxyz6.649 sec elapsed
    

    当按下“a”时,秒表启动,然后在按下“z”键时停止。