重新编辑以包含其他原始输入数据。
我有一个呼吸时间序列,其中检测到的呼吸准确度因检测器设置的技术限制而变化。该系列包含检测到的呼吸间隔的列表。
我通过从第1次减去第2次观察来计算呼吸之间呼吸速率的差异,依此类推。然后使用ifelse语句检查此间隔,将大于0.5的正值标记为1,否则为0.例如。
sequence rate diff flag
1 1 1.07 0.00 0
2 2 0.99 0.08 0
3 3 0.98 0.01 0
4 4 1.01 -0.03 0
5 5 1.10 -0.09 0
6 6 0.99 0.11 0
7 7 1.06 -0.07 0
8 8 0.23 0.83 1
9 9 0.82 -0.59 0
10 10 1.09 -0.27 0
11 11 0.96 0.13 0
12 12 1.10 -0.14 0
13 13 1.04 0.06 0
14 14 0.36 0.68 1
15 15 0.75 -0.39 0
根据经验,我已经确定最常见的错误导致2个短于正常的间隔,然后是类似于包含>的行的间隔。 0.5值。例如,第8行之后是两个较短的间隔,然后第10行又回到预期的速率。
在电子表格中,我使用了这个if /和语句来评估是否将提取的第9行和第10行加在一起。
IF(AND(row8<row7,row9<row7,sum(row8:row9)<120%*row7,sum(row8:row9),0)
我有一个单独的检查语句来测试第10行是否已正确确定。
IF(AND(row7*80%<=row10,120%*row7*120%>=row10),0,1)
因此,我想生成一个变量,该变量具有4个提取的行,具有计算的求和行(1.11或0)和检查行(1或0)。
seq rate diff sum check
7 7 1.06 -0.07 0 0
8 8 0.23 0.83 1.05 1
9 9 0.82 -0.59 0 0
10 10 1.09 -0.27 0 0
然后,当检查值= 1时,我需要将包含sum值的行重新插入到数据帧中。然后,我可以使用seq上的数据框以正确的顺序排列。
最后,我需要循环数据帧并处理由1标记的下一组行。
如果我能得到一些如何实现这一目标的线索,那就太激动了。
问候
安德鲁