我希望清理一个时间序列数据集,以便只保留每个事件的最大值。首先,我过滤了数据,以便只保留高于某个阈值的值,但仍然有一些值,虽然相隔一两毫秒,但作为重复值,但会在以后的分析中丢失。
我的初始数据集有> 100,000行和更多的列,但这里是一个较小版本的顶部。
head(shortfilter)
Time (Sec) ECG (Channel 6)
1 5534.023 1.371761
2 5534.024 1.232424
3 5534.152 1.414432
4 5534.153 1.359914
5 5534.272 1.639033
6 5534.396 1.476161
字符串
解释:我没有一个具体的时间值,他们需要在它被认为是一个重复,但其余的数据是类似的,因为他们通常在0.003秒。
Time (Sec) ECG (Channel 6)
1 5534.023 1.371761 #<-- Higher value (keep)
2 5534.024 1.232424
3 5534.152 1.414432 #<-- Higher value (keep)
4 5534.153 1.359914
5 5534.272 1.639033 #<-- Only value (keep)
6 5534.396 1.476161 #<-- Only value (keep)
型
理想:
Time (Sec) ECG (Channel 6)
1 5534.023 1.371761
2 5534.152 1.414432
3 5534.272 1.639033
4 5534.396 1.476161
5 ____.___ _.______
6 ____.___ _.______
型
我将添加我的初步尝试在一些条件做什么我希望,但请记住,我是新的编码一般,所以我知道它不是远程正确,只是想得到一些想法在那里.希望它可以给给予一些额外的信息,我希望做什么虽然.我肯定的格式和语法是完全乱码,但我相信你们中的许多人会明白我是去哈哈...
for (i in shortfilter$`Time (Sec)`){
for (j in shortfilter$`ECG (Channel 6)`){
if ((i+1)-i > 0.01 && j > j+1){
remove(j+1)
} else if ((i+1)-i > 0.01 && j < j+1){
remove(j)
}
}
}
型
1条答案
按热度按时间k3bvogb11#
我的解决方案将每个值与下一个值进行比较,并找到差异,然后根据这些值调整预测的分组数。目前,它可以处理多达五个连续的重复数字,但如果您愿意,可以轻松添加更多。
字符串
另外,请随时根据您的数据微调阈值0.03。如果有效,请告诉我!