【发布时间】:2020-09-02 23:49:55
【问题描述】:
我是 R 和堆栈溢出的新手,所以请多多包涵,因为我正在尽力在这里描述我的问题。如果满足某些条件,我想删除数据框的某些行。访问数据框:
Time <- c(5.58, 12.79, 14.27, 14.35, 18.18, 19.62, 20.69, 20.70, 20.80, 22.65)
Signal <- c(532.0603, 290.8152, 390.9111, 778.8482, 541.6486, 855.9310, 445.0463, 887.9447, 889.1131, 490.0643)
data.frame(Time, Signal)
Time Signal
5.58 532.0603
12.79 290.8152
14.27 390.9111
14.35 778.8482
18.18 541.6486
19.62 855.9310
20.69 445.0463
20.70 887.9447
20.80 889.1131
22.65 490.0643
我想做的第一件事是如果时间 A 在时间 B 的 0.2 以内并且信号 B 不大于信号 A 的 2,然后删除 Row B. 所以我的预期结果是
Time Signal
5.58 532.0603
12.79 290.8152
14.27 390.9111
14.35 778.8482
18.18 541.6486
19.62 855.9310
20.69 445.0463
20.70 887.9447
22.65 490.0643
第二件事是如果时间 A 在时间 B 的 0.2 以内 并且 abs((信号 B + 2)/2 - 信号 A)
Time Signal
5.58 532.0603
12.79 290.8152
14.35 778.8482
18.18 541.6486
19.62 855.9310
20.70 887.9447
22.65 490.0643
我的想法是我可能必须编写一个带有 while 循环的函数,但不确定这是否是正确的方法或如何执行。实际上,我已经花了很多时间试图弄清楚这一点,如果您能帮助我,我将非常感谢您的帮助,非常感谢!!!
【问题讨论】:
-
到目前为止你尝试了什么?
-
行“A”是第一行,对吧?
-
是的@Edward,A 行是第一行,B 行是下一行。
标签: r dplyr data-cleaning