是否可以将R用作秒表来测量两次击键之间的时间?

时间:2019-06-04 07:42:57

标签: r user-input stopwatch

我正在开发一个R包装,以测量动物对气味源的行为响应。为此,我需要能够记录一个人在五个预定区域中花费的时间(以秒为单位)以及他们进入每个区域的次数。

尽管我确信R可以用来满足我的需求,但我仍在努力寻找任何信息,尽管R可以做到!

基本上,我想将每个区域分配给一个键,当一个人进入一个区域时,我可以按下该键,让R测量每个区域中的总时间以及他们输入的次数。我在论坛上进行了广泛的搜索,以查看以前是否已经实现了类似的目标,并找到了两个相关的主题:

  1. Time user input from first keystroke in R

  2. How to allow multiple inputs from user using R?

但是,这些线程都不足以使我能够测量所需的值。

任何帮助将不胜感激。非常感谢。

1 个答案:

答案 0 :(得分:0)

因此,根据您链接的2个非常有用的线程,您可以尝试执行以下操作:

require(tictoc) #load required package
while(T){       #open infinite while loop
    tic()       #start timer
    input_state=readline("State input: ")  #allow for entry of state
    if(input_state %in% 1:5){    #check if it's acceptable 
        elapsed=toc()            #if it is then end timer and record data
        write.table(cbind(input_state,elapsed$toc-elapsed$tic),'results.txt',col.names=F,row.names=F,quote=F,append=T)
    }else if(input_state=='t'){  #if input is 't' 
        break                    #break out of while loop
    }else if(input_state <1 | input_state > 5 & input_state!='t'){#if input is not and accepted state AND is not 't'
     print('thats not an allowed state- please try another')
     } 
}

然后获取进入每种状态的次数:

data=read.table('results.txt',stringsAsFactors=F,header=F)
table(data[,1])