algorithm - 如何最好地在 R 中创建定时器函数

标签 algorithm r timer tcl

我正在尝试在 R 中创建一个函数,该函数在函数调用 1 后的前 x 秒返回,接下来的 x 秒返回 0,接下来的 x 秒再次返回 1,...整个过程应该在另一个时间后停止间隔或 n 次迭代后。我想通过一个函数调用来完成此操作。

我阅读了 tcltk 包,它显然包含创建此类“计时器”函数的一些可能性,但是我没有找到足够的解释来解决我的问题。

你能告诉我在哪里可以找到一本很好的手册,在 R 的上下文中解释 tcl 吗?对于如何高效地创建这样的函数,您有其他想法吗?

非常感谢您的帮助。

最佳答案

如果我没理解错的话,你正在尝试创建一个函数,它会在前 x 秒内调用时返回 1,然后在接下来的 x 秒内调用时返回 0,然后在接下来的 x 秒内返回 1等。经过一定的 total 时间后,它应该“完成”,也许返回 -1?

您可以使用以下函数执行此操作,该函数将“创建”具有任何所需间隔的函数:

flipper <- function(interval=10, total = 60) {
  t0 <- Sys.time()
  function() {
    seconds <- round(as.double( difftime(Sys.time(), t0, u = 'secs')))
    if(seconds > total)
      return(-1) else
    return(trunc( 1 + (seconds / interval ) ) %% 2)
  }
}

您可以使用它来创建一个函数,该函数在前 60 秒内每 10 秒在 0 和 1 之间交替,并在 60 秒后返回 -1:

> flp <- flipper(10,60)

现在调用 flp() 将具有您正在寻找的行为,即当您在接下来的 60 秒内调用 flp() 时,它将在 1 和每 10 秒返回 0,然后在 60 秒后返回 -1。

关于algorithm - 如何最好地在 R 中创建定时器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4853596/

相关文章:

r - 使用相同的列填充另一个数据框中的缺失值

r - 如何在for循环中使用predict.lm?

Android - 定时器功能和 alertDialog

c# - 如何使用 System.Threading.Timer 和 Thread.Sleep?

ruby - 将所有项目与同一列表中的另一个项目匹配的算法,其中有些有限制

performance - 我们可以使用堆排序在线性时间内对一组无序数字进行排序吗?

algorithm - 包含集合中节点的最小子树

r - k 折交叉验证 - 如何自动获得预测?

c# - 将 System.Threading.Timer 对象引用传递给它的回调函数

java - 在对数时间内找到两个排序数组的中值