Как определить основные пики в данных, которые содержат несколько широких пиков - PullRequest
0 голосов
/ 20 июня 2020

У меня есть данные, которые, похоже, содержат 23 пика. По оси X отложено время, а по оси Y - пик. Однако каждый пик довольно широкий, включая несколько более мелких. Я бы хотел удалить более мелкие пики, так что у меня осталось время для каждого основного пика.

Буду очень благодарен за помощь!

time <- c(1562, 1563, 1564, 1565, 1566, 1810, 1811, 1812, 1813, 1814, 
          2058, 2059, 2060, 2061, 2306, 2307, 2308, 2309, 2310, 2560, 2561, 
          2562, 2563, 2564, 3064, 3065, 3066, 3067, 3580, 3581, 3582, 3583, 
          3584, 4095, 4096, 4097, 4098, 4099, 4610, 4611, 4612, 4613, 4614, 
          5128, 5129, 5130, 5131, 5132, 5133, 5637, 5638, 5639, 5640, 5641, 
          5876, 5877, 5878, 5879, 5880, 5881, 5882, 6125, 6126, 6127, 6128, 
          6129, 6130, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 7072, 7073, 
          7074, 7075, 7076, 7077, 7078, 7079, 7519, 7520, 7521, 7522, 7523, 
          7524, 7525, 7526, 7527, 7528, 7941, 7942, 7943, 7944, 7945, 7946, 
          7947, 7948, 7949, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 
          8350, 8351, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 
          8717, 8718, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 
          9054, 9055, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 
          9361, 9362, 9363, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 
          9632, 9633, 9634, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 
          9875, 9876)

peak <- c(509, 672, 758, 686, 584, 559, 727, 759, 688, 528, 562, 711, 
          768, 678, 644, 750, 822, 693, 531, 566, 738, 793, 730, 511, 587, 
          739, 761, 651, 579, 747, 768, 705, 544, 551, 687, 756, 749, 645, 
          564, 680, 724, 691, 596, 535, 625, 685, 689, 612, 512, 537, 616, 
          657, 653, 573, 506, 598, 675, 685, 668, 609, 515, 575, 656, 687, 
          678, 626, 533, 509, 587, 641, 680, 663, 602, 515, 505, 583, 646, 
          693, 696, 684, 630, 549, 500, 572, 637, 681, 725, 736, 736, 703, 
          649, 556, 568, 637, 682, 743, 765, 767, 709, 660, 587, 548, 622, 
          690, 761, 779, 764, 749, 694, 631, 525, 571, 646, 724, 788, 811, 
          834, 818, 776, 712, 616, 536, 556, 649, 738, 801, 857, 866, 837, 
          808, 718, 647, 568, 508, 605, 714, 823, 872, 917, 916, 890, 825, 
          742, 642, 543, 549, 656, 766, 851, 921, 947, 951, 892, 830, 730, 
          617, 586, 675, 760, 804, 816, 795, 740, 690, 613, 522)

data <- data.frame(time = time, peak = peak)

ggplot(data, aes(x=time, y=peak)) +
  geom_line()

enter image description here

ADDITIONAL QUESTION: I've been trying to apply this to another data set and it picks out too many peaks. The new data contains a broad normal distribution. I'd like it to pick out just the very highest peak in this distribution, but as you can see from the image, it picks out every individual peak on either side. Is there a modification that can be made to the code to pick them out?

data2 <- data.frame(time = c(5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 
                             5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 
                             5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 
                             5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 
                             5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 
                             5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 
                             5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 
                             5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 
                             5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 
                             5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 
                             5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 
                             5121, 5122, 5123, 5124, 5125, 5126, 5127, 5135, 5136, 5137, 5138, 
                             5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 
                             5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 
                             5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 
                             5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 
                             5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 
                             5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 
                             5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 
                             5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 
                             5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 
                             5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 
                             5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 
                             5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 
                             5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 
                             5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 
                             5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 
                             5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 
                             5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 
                             5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 
                             5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 
                             5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 
                             5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 
                             5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 
                             5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 
                             5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 
                             5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 
                             5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 
                             5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 
                             5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 
                             5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 
                             5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 
                             5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 
                             5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 
                             5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 
                             5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 
                             5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 
                             5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 
                             5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 
                             5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 
                             5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 
                             5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 
                             5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 
                             5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 
                             5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 
                             5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 
                             5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 
                             5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 
                             5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 
                             5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 
                             5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 
                             5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 
                             5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 
                             5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 
                             5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 
                             5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 
                             5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 
                             5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 
                             5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 
                             5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 
                             5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 
                             5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 
                             5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 
                             5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 
                             5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 
                             5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 
                             5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 
                             5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 
                             5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 
                             5876, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 
                             5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 
                             5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 
                             5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 
                             5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 
                             5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 
                             5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 
                             5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 
                             5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 
                             5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 
                             5994, 5995, 5996, 5997, 5998, 5999),
                    peak = c(245, 236, 220, 189, 173, 154, 142, 124, 118, 105, 107, 99, 
                             100, 98, 111, 116, 115, 126, 129, 128, 128, 132, 134, 145, 158, 
                             170, 188, 207, 225, 242, 237, 229, 211, 189, 173, 151, 131, 116, 
                             113, 98, 105, 96, 101, 112, 106, 112, 113, 111, 124, 131, 127, 
                             130, 137, 149, 146, 164, 184, 210, 228, 239, 228, 225, 217, 185, 
                             168, 149, 140, 126, 110, 101, 104, 100, 102, 103, 109, 105, 109, 
                             114, 117, 122, 128, 119, 130, 142, 148, 166, 182, 204, 226, 235, 
                             247, 226, 224, 193, 174, 153, 137, 124, 119, 110, 99, 105, 96, 
                             98, 102, 116, 122, 117, 116, 132, 123, 130, 139, 138, 145, 166, 
                             182, 191, 215, 221, 212, 207, 186, 153, 112, 66, 8, 27, 68, 86, 
                             113, 125, 130, 139, 148, 153, 159, 178, 188, 213, 230, 249, 259, 
                             246, 234, 219, 197, 175, 151, 133, 126, 117, 122, 120, 115, 109, 
                             115, 116, 125, 133, 141, 139, 142, 148, 147, 155, 170, 178, 203, 
                             226, 254, 259, 273, 257, 249, 221, 191, 173, 152, 145, 130, 121, 
                             127, 118, 121, 119, 124, 130, 136, 146, 144, 154, 166, 155, 163, 
                             168, 190, 215, 223, 252, 273, 282, 275, 268, 237, 220, 191, 168, 
                             159, 140, 137, 130, 122, 131, 120, 134, 132, 134, 137, 142, 151, 
                             153, 164, 162, 176, 190, 196, 217, 243, 266, 271, 262, 257, 237, 
                             214, 187, 169, 147, 138, 126, 118, 116, 114, 117, 116, 123, 123, 
                             123, 129, 140, 146, 152, 156, 166, 178, 185, 209, 241, 264, 264, 
                             261, 262, 232, 204, 178, 162, 140, 125, 117, 110, 112, 103, 98, 
                             105, 108, 116, 117, 130, 128, 142, 135, 138, 149, 161, 169, 193, 
                             222, 244, 256, 265, 246, 222, 201, 174, 147, 130, 125, 110, 102, 
                             97, 95, 90, 98, 99, 107, 117, 115, 119, 128, 131, 137, 135, 144, 
                             173, 188, 209, 232, 251, 251, 244, 217, 190, 162, 144, 122, 116, 
                             103, 94, 87, 88, 92, 97, 101, 97, 98, 108, 121, 122, 118, 128, 
                             132, 144, 162, 180, 209, 230, 246, 233, 230, 218, 187, 159, 125, 
                             124, 105, 92, 89, 84, 81, 85, 76, 78, 92, 92, 102, 102, 109, 
                             115, 126, 134, 137, 164, 179, 208, 227, 241, 258, 247, 223, 203, 
                             173, 140, 121, 111, 94, 98, 85, 87, 89, 91, 84, 91, 106, 103, 
                             107, 111, 123, 126, 142, 150, 166, 194, 221, 242, 247, 254, 237, 
                             229, 194, 170, 140, 130, 110, 94, 85, 84, 84, 79, 82, 88, 89, 
                             100, 108, 111, 114, 121, 122, 142, 149, 175, 198, 236, 252, 268, 
                             279, 257, 232, 194, 170, 151, 127, 108, 104, 95, 91, 81, 83, 
                             94, 92, 96, 106, 111, 122, 115, 131, 142, 152, 167, 183, 222, 
                             248, 282, 290, 296, 279, 249, 226, 190, 163, 136, 116, 109, 93, 
                             95, 92, 86, 86, 91, 108, 109, 120, 121, 131, 140, 141, 157, 187, 
                             216, 240, 276, 311, 319, 333, 309, 281, 237, 203, 167, 134, 123, 
                             112, 104, 92, 95, 99, 103, 112, 110, 114, 128, 138, 140, 161, 
                             180, 193, 223, 242, 276, 317, 352, 372, 383, 354, 318, 285, 222, 
                             190, 163, 144, 124, 114, 100, 98, 107, 105, 117, 121, 133, 144, 
                             166, 176, 185, 199, 225, 268, 306, 348, 384, 439, 466, 463, 427, 
                             392, 329, 274, 221, 181, 161, 141, 131, 123, 127, 128, 131, 138, 
                             147, 163, 173, 188, 208, 221, 242, 294, 338, 380, 468, 518, 568, 
                             596, 604, 554, 488, 403, 336, 275, 229, 182, 159, 141, 143, 140, 
                             143, 160, 163, 183, 204, 230, 241, 244, 281, 316, 382, 448, 515, 
                             624, 720, 790, 840, 790, 709, 616, 505, 412, 329, 267, 218, 186, 
                             166, 155, 148, 158, 171, 183, 204, 211, 230, 243, 235, 268, 280, 
                             315, 395, 525, 690, 881, 986, 1037, 1002, 930, 790, 668, 556, 
                             444, 335, 276, 236, 218, 201, 201, 216, 227, 257, 290, 331, 368, 
                             401, 451, 525, 599, 693, 823, 988, 1160, 1354, 1466, 1468, 1399, 
                             1220, 1016, 824, 648, 501, 402, 326, 273, 253, 233, 235, 266, 
                             271, 300, 359, 380, 422, 462, 532, 592, 703, 886, 1062, 1253, 
                             1444, 1588, 1701, 1691, 1551, 1372, 1141, 929, 713, 563, 445, 
                             362, 305, 258, 245, 240, 254, 280, 319, 348, 394, 416, 478, 537, 
                             608, 717, 829, 989, 1197, 1426, 1551, 1579, 1563, 1447, 1244, 
                             1026, 801, 638, 500, 379, 303, 265, 230, 221, 202, 203, 225, 
                             246, 289, 303, 327, 374, 396, 462, 539, 625, 744, 899, 1017, 
                             1094, 1138, 1058, 946, 832, 677, 543, 415, 337, 272, 230, 200, 
                             182, 173, 170, 173, 174, 196, 208, 218, 236, 250, 280, 324, 364, 
                             424, 505, 567, 627, 649, 660, 626, 568, 484, 400, 325, 276, 222, 
                             185, 159, 143, 136, 129, 130, 131, 135, 142, 153, 162, 178, 191, 
                             208, 228, 245, 285, 317, 347, 378, 397, 380, 367, 323, 288, 242, 
                             202, 171, 151, 130, 112, 112, 103, 101, 103, 100, 113, 119, 118, 
                             127, 135, 143, 155, 158, 177, 195, 207, 226, 247, 253, 244, 224, 
                             201, 177, 156, 134, 118, 113, 102, 100, 90, 88, 84, 94, 87, 94, 
                             102, 103, 101, 108, 107, 121, 120, 131, 136, 127, 135, 122, 91, 
                             41, 3, 5, 32, 48, 50, 61, 71, 75, 80, 87, 90, 98, 108, 107, 127, 
                             136, 139, 145, 149, 138, 139, 129, 117, 106, 94, 91, 84, 74, 
                             75, 70, 71, 74, 72, 74, 81, 78, 87, 85, 81, 91, 93, 98, 102, 
                             122, 120, 127, 129, 126, 133, 113, 103, 97, 90, 85, 75, 79, 69, 
                             63, 65, 68, 68, 71, 74, 73, 78, 71, 81, 78, 87, 92, 104, 109, 
                             118, 115, 130, 121, 122, 111, 97, 89, 87, 85, 75, 71, 70, 62, 
                             65, 60, 69, 60, 68, 64, 66, 70, 81, 82, 85, 89, 90, 96, 105, 
                             122, 115, 126, 114, 119, 105, 96, 94, 85, 72, 68, 62, 70, 58, 
                             59))

blue.peaks <- tibble(time = data2$time, value = data2$peak)
blue.peaks <- blue.peaks %>% mutate(left_v = c(0.01, diff(value)),
                                    right_v = -lead(left_v, default = -0.01),
                                    is_peak = if_else(left_v > 0 & right_v >= 0, TRUE, FALSE))
data2$keep 

введите описание изображения здесь

1 Ответ

0 голосов
/ 20 июня 2020

ДО РЕДАКТИРОВАНИЯ

данные (только пиковые значения):

peak <- c(
 509, 672 ,758, 686 ,584, 559, 727, 759, 688, 528, 562, 711, 768, 678, 644, 750, 822, 693, 531, 566, 738, 793, 730, 511, 587 ,739, 761, 651, 579,
 747, 768, 705, 544, 551, 687, 756, 749, 645, 564, 680, 724, 691, 596, 535, 625, 685, 689, 612, 512, 537, 616, 657, 653 ,573, 506, 598, 675, 685,
668, 609 ,515, 575, 656, 687, 678, 626, 533, 509, 587, 641, 680, 663, 602, 515 ,505, 583, 646, 693, 696, 684, 630, 549, 500 ,572, 637, 681, 725,
 736 ,736, 703, 649, 556, 568, 637, 682, 743, 765, 767, 709, 660, 587, 548, 622, 690, 761, 779, 764, 749, 694, 631 ,525 ,571 ,646, 724, 788, 811,
 834, 818, 776, 712, 616, 536, 556, 649, 738, 801, 857, 866, 837, 808, 718 ,647 ,568, 508, 605, 714, 823, 872, 917 ,916, 890 ,825, 742, 642, 543,
 549, 656, 766, 851, 921, 947, 951, 892, 830, 730, 617, 586, 675, 760, 804, 816 ,795, 740, 690, 613, 522)

код:

peak_data <- tibble(
  value = peak
)

peak_data <- peak_data %>%
  mutate(
    left_v = c(0.01, diff(value)),
    right_v = -lead(left_v, default = -0.01),
    peak = if_else(
      (left_v > 0 & right_v >= 0) | (left_v >= 0 & right_v > 0), TRUE, FALSE
    )
  ) %>%
  filter(peak == TRUE) %>%
  select(-left_v, -right_v, -peak)

Я положил некоторые число (0,01) для проверки, если края являются вершинами. У меня есть 24 пика (локальный максимум) из этого кода:

peak_data %>% nrow()
[1] 24

Я все еще не совсем уверен, что вы имеете в виду под пиком, например вектор:

x <- c(5, 6, 6, 4)

имеет 2 пика в моем коде. Его легко адаптировать, чтобы иметь 0 пиков с изменением:

(left_v > 0 & right_v >= 0) | (left_v >= 0 & right_v > 0)

до:

left_v > 0 & right_v > 0

, тогда я получаю 22 пика. Или вы можете посчитать его как 1, указав одно из:

left_v >= 0 & right_v > 0
left_v > 0 & right_v >= 0

в зависимости от того, с какой стороны вы хотите посчитать 23 пика.

ПОСЛЕ РЕДАКТИРОВАНИЯ И КОММЕНТАРИИ

peak_data <- tibble(
  peak = peak,
  time = time
)

peak_data <- peak_data %>%
  mutate(
    left_v = c(0.01, diff(peak)),
    right_v = -lead(left_v, default = -0.01),
    is_peak = if_else(
      left_v > 0 & right_v >= 0, TRUE, FALSE
    )
  ) %>%
  filter(is_peak == TRUE) %>%
  select(peak, time)

дает время пиков и пиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...