首页 > 解决方案 > 根据数字对行进行子集和折叠

问题描述

我被困在一个问题上,在我看来,这个问题应该很容易解决。但是,我找不到解决方案。

我有一个包含时间序列的数据框,我只想对某些行进行子集化。我创建了一个虚拟数据集:

    structure(list(ID = c("A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", 
"A1", "A1", "A1", "A1", "A1", "A1", "A1", "A1", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", "A2", 
"A2"), Time = structure(c(1611925200, 1611925201, 1611925202, 
1611925203, 1611925204, 1611925205, 1611925206, 1611925207, 1611925208, 
1611925209, 1611925210, 1611925211, 1611925212, 1611925213, 1611925214, 
1611925215, 1611925216, 1611925217, 1611925218, 1611925219, 1611925220, 
1611925221, 1611925222, 1611925223, 1611925224, 1611925225, 1611925226, 
1611925227, 1611925228, 1611925229, 1611925230, 1611925231, 1611925232, 
1611925233, 1611925234, 1611925235, 1611925236, 1611925237, 1611925238, 
1611925239, 1611925240, 1611925241, 1611925242, 1611925243, 1611925244, 
1611925245, 1611925246, 1611925247, 1611925248, 1611925249, 1611925250, 
1611925251, 1611925252, 1611925253, 1611925254, 1611925255, 1611925256, 
1611925257, 1611925258, 1611925259, 1611925260, 1611925261, 1611925262, 
1611925263, 1611925264, 1611925265, 1611925266, 1611925267, 1611925268, 
1611925269, 1611925270, 1611925271, 1611925272, 1611925273, 1611925274, 
1611925275, 1611925276, 1611925277, 1611925278, 1611925279, 1611925280, 
1611925281, 1611925282, 1611925283, 1611925284, 1611925285, 1611925286, 
1611925287, 1611925288, 1611925289, 1611925290, 1611925291, 1611925292, 
1611925293, 1611925294, 1611925295, 1611925296, 1611925297, 1611925298, 
1611925299, 1611925300, 1611925301, 1611925302, 1611925303, 1611925304, 
1611925305, 1611925306, 1611925307, 1611925308, 1611925309, 1611925310, 
1611925311, 1611925312, 1611925313, 1611925314, 1611925315, 1611925316, 
1611925317, 1611925318, 1611925319, 1611925320, 1611925321, 1611925322, 
1611925323, 1611925324, 1611925325, 1611925326, 1611925327, 1611925328, 
1611925329, 1611925330, 1611925331, 1611925332, 1611925333, 1611925334, 
1611925335, 1611925336, 1611925337, 1611925338, 1611925339, 1611925340, 
1611925341, 1611925342, 1611925343, 1611925344, 1611925345, 1611925346, 
1611925347, 1611925348, 1611925349, 1611925350, 1611925351, 1611925352, 
1611925353, 1611925354, 1611925355, 1611925356, 1611925357, 1611925358, 
1611925359, 1611925360, 1611925361, 1611925362, 1611925363, 1611925364, 
1611925365, 1611925366, 1611925367, 1611925368, 1611925369, 1611925370, 
1611925371, 1611925372, 1611925373, 1611925374, 1611925375, 1611925376, 
1611925377, 1611925378, 1611925379, 1611925380, 1611925381, 1611925382, 
1611925383, 1611925384, 1611925385, 1611925386, 1611925387, 1611925388, 
1611925389, 1611925390, 1611925391, 1611925392, 1611925393, 1611925394, 
1611925395, 1611925396, 1611925397, 1611925398, 1611925399, 1611925400, 
1611925401, 1611925402, 1611925403, 1611925404, 1611925405, 1611925406, 
1611925407, 1611925408, 1611925409, 1611925410, 1611925411, 1611925412, 
1611925413, 1611925414, 1611925415, 1611925416, 1611925417, 1611925418, 
1611925419, 1611925420, 1611925421, 1611925422, 1611925423, 1611925424, 
1611925425, 1611925426, 1611925427, 1611925428, 1611925429, 1611925430, 
1611925431, 1611925432, 1611925433, 1611925434, 1611925435, 1611925436, 
1611925437, 1611925438, 1611925439, 1611925440, 1611925441, 1611925442, 
1611925443, 1611925444, 1611925445, 1611925446, 1611925447, 1611925448, 
1611925449, 1611925450, 1611925451, 1611925452, 1611925453, 1611925454, 
1611925455, 1611925456, 1611925457, 1611925458, 1611925459, 1611925460, 
1611925461, 1611925462, 1611925463, 1611925464, 1611925465, 1611925466, 
1611925467, 1611925468, 1611925469, 1611925470, 1611925471, 1611925472, 
1611925473, 1611925474, 1611925475, 1611925476, 1611925477, 1611925478, 
1611925479, 1611925480, 1611925481, 1611925482, 1611925483, 1611925484, 
1611925485, 1611925486, 1611925487, 1611925488, 1611925489, 1611925490, 
1611925491, 1611925492, 1611925493, 1611925494, 1611925495, 1611925496, 
1611925497, 1611925498, 1611925499, 1611925500, 1611925200, 1611925201, 
1611925202, 1611925203, 1611925204, 1611925205, 1611925206, 1611925207, 
1611925208, 1611925209, 1611925210, 1611925211, 1611925212, 1611925213, 
1611925214, 1611925215, 1611925216, 1611925217, 1611925218, 1611925219, 
1611925220, 1611925221, 1611925222, 1611925223, 1611925224, 1611925225, 
1611925226, 1611925227, 1611925228, 1611925229, 1611925230, 1611925231, 
1611925232, 1611925233, 1611925234, 1611925235, 1611925236, 1611925237, 
1611925238, 1611925239, 1611925240, 1611925241, 1611925242, 1611925243, 
1611925244, 1611925245, 1611925246, 1611925247, 1611925248, 1611925249, 
1611925250, 1611925251, 1611925252, 1611925253, 1611925254, 1611925255, 
1611925256, 1611925257, 1611925258, 1611925259, 1611925260, 1611925261, 
1611925262, 1611925263, 1611925264, 1611925265, 1611925266, 1611925267, 
1611925268, 1611925269, 1611925270, 1611925271, 1611925272, 1611925273, 
1611925274, 1611925275, 1611925276, 1611925277, 1611925278, 1611925279, 
1611925280, 1611925281, 1611925282, 1611925283, 1611925284, 1611925285, 
1611925286, 1611925287, 1611925288, 1611925289, 1611925290, 1611925291, 
1611925292, 1611925293, 1611925294, 1611925295, 1611925296, 1611925297, 
1611925298, 1611925299, 1611925300, 1611925301, 1611925302, 1611925303, 
1611925304, 1611925305, 1611925306, 1611925307, 1611925308, 1611925309, 
1611925310, 1611925311, 1611925312, 1611925313, 1611925314, 1611925315, 
1611925316, 1611925317, 1611925318, 1611925319, 1611925320, 1611925321, 
1611925322, 1611925323, 1611925324, 1611925325, 1611925326, 1611925327, 
1611925328, 1611925329, 1611925330, 1611925331, 1611925332, 1611925333, 
1611925334, 1611925335, 1611925336, 1611925337, 1611925338, 1611925339, 
1611925340, 1611925341, 1611925342, 1611925343, 1611925344, 1611925345, 
1611925346, 1611925347, 1611925348, 1611925349, 1611925350, 1611925351, 
1611925352, 1611925353, 1611925354, 1611925355, 1611925356, 1611925357, 
1611925358, 1611925359, 1611925360, 1611925361, 1611925362, 1611925363, 
1611925364, 1611925365, 1611925366, 1611925367, 1611925368, 1611925369, 
1611925370, 1611925371, 1611925372, 1611925373, 1611925374, 1611925375, 
1611925376, 1611925377, 1611925378, 1611925379, 1611925380, 1611925381, 
1611925382, 1611925383, 1611925384, 1611925385, 1611925386, 1611925387, 
1611925388, 1611925389, 1611925390, 1611925391, 1611925392, 1611925393, 
1611925394, 1611925395, 1611925396, 1611925397, 1611925398, 1611925399, 
1611925400, 1611925401, 1611925402, 1611925403, 1611925404, 1611925405, 
1611925406, 1611925407, 1611925408, 1611925409, 1611925410, 1611925411, 
1611925412, 1611925413, 1611925414, 1611925415, 1611925416, 1611925417, 
1611925418, 1611925419, 1611925420, 1611925421, 1611925422, 1611925423, 
1611925424, 1611925425, 1611925426, 1611925427, 1611925428, 1611925429, 
1611925430, 1611925431, 1611925432, 1611925433, 1611925434, 1611925435, 
1611925436, 1611925437, 1611925438, 1611925439, 1611925440, 1611925441, 
1611925442, 1611925443, 1611925444, 1611925445, 1611925446, 1611925447, 
1611925448, 1611925449, 1611925450, 1611925451, 1611925452, 1611925453, 
1611925454, 1611925455, 1611925456, 1611925457, 1611925458, 1611925459, 
1611925460, 1611925461, 1611925462, 1611925463, 1611925464, 1611925465, 
1611925466, 1611925467, 1611925468, 1611925469, 1611925470, 1611925471, 
1611925472, 1611925473, 1611925474, 1611925475, 1611925476, 1611925477, 
1611925478, 1611925479, 1611925480, 1611925481, 1611925482, 1611925483, 
1611925484, 1611925485, 1611925486, 1611925487, 1611925488, 1611925489, 
1611925490, 1611925491, 1611925492, 1611925493, 1611925494, 1611925495, 
1611925496, 1611925497, 1611925498, 1611925499, 1611925500), class = c("POSIXct", 
"POSIXt"), tzone = ""), Seq = c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 
42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 
74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 
105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 
118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 
157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 
170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 
183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 
196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 
209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 
222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 
235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 
248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 
261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 
274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 
287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 
300, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 
110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 
123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 
136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 
149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 
162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 
175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 
188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 
201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 
214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 
227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 
253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 
266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 
279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 
292, 293, 294, 295, 296, 297, 298, 299, 300), Value = c(0, 1, 
1, 0, 2, 1, 1, 0, 0, 1, 0, 1, 0, 2, 1, 2, 1, 1, 0, 0, 1, 0, 1, 
2, 2, 0, 1, 2, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 2, 
1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
1, 0, 0, 2, 1, 1, 0, 1, 0, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 
1, 2, 1, 0, 1, 1, 2, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 2, 2, 2, 
0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1, 1, 0, 2, 
0, 1, 0, 1, 0, 2, 0, 1, 1, 1, 1, 1, 2, 1, 1, 0, 2, 1, 1, 1, 0, 
1, 0, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 
2, 1, 1, 1, 0, 2, 2, 1, 2, 1, 2, 0, 1, 1, 1, 0, 2, 2, 2, 0, 0, 
2, 1, 0, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 0, 1, 2, 
2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 0, 1, 2, 0, 0, 1, 1, 1, 2, 
2, 1, 2, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 2, 0, 0, 2, 2, 2, 
1, 1, 1, 2, 0, 1, 2, 0, 1, 2, 0, 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 
1, 0, 1, 1, 0, 2, 1, 1, 2, 2, 0, 1, 2, 1, 1, 1, 0, 1, 1, 0, 1, 
1, 0, 0, 1, 0, 2, 1, 1, 0, 0, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 
2, 2, 2, 2, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 2, 1, 2, 2, 
1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 
0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 2, 2, 0, 1, 2, 1, 0, 0, 1, 0, 
2, 1, 1, 2, 1, 1, 1, 2, 1, 1, 0, 1, 1, 1, 1, 2, 1, 1, 0, 0, 0, 
1, 0, 1, 1, 2, 0, 2, 0, 1, 1, 1, 2, 1, 2, 2, 1, 0, 1, 0, 1, 1, 
1, 1, 2, 1, 2, 0, 0, 1, 1, 1, 2, 1, 0, 2, 0, 2, 1, 0, 2, 2, 0, 
1, 2, 1, 2, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 2, 1, 
2, 2, 1, 0, 0, 2, 1, 1, 0, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 
2, 2, 2, 0, 2, 1, 2, 2, 1, 0, 2, 2, 1, 1, 0, 2, 2, 2, 1, 2, 0, 
2, 0, 0, 2, 2, 2, 2, 0, 2, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1, 2, 1, 
1, 2, 1, 0, 1, 1, 2, 1, 1, 0, 1, 0, 0, 0, 2, 1, 0, 2, 2, 2, 1, 
0, 1, 1, 1, 2, 2, 1, 0, 1, 0, 0, 1, 2, 0, 0, 0, 1, 0, 1, 1, 0, 
2, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 2, 1, 1, 0, 1, 1, 1, 
1, 1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 0), toTake = c("3", "no", "no", 
"no", "no", "no", "no", "no", "no", "no", "0", "no", "no", "no", 
"no", "no", "no", "no", "no", "no", "2", "no", "no", "no", "no", 
"no", "no", "no", "no", "no", "2", "no", "no", "no", "no", "no", 
"no", "no", "no", "no", "1", "no", "no", "no", "no", "no", "no", 
"no", "no", "no", "4", "no", "no", "no", "no", "no", "no", "no", 
"no", "no", "2", "no", "no", "no", "no", "no", "no", "no", "no", 
"no", "0", "no", "no", "no", "no", "no", "no", "no", "no", "no", 
"2", "no", "no", "no", "no", "no", "no", "no", "no", "no", "3", 
"no", "no", "no", "no", "no", "no", "no", "no", "no", "2", "no", 
"no", "no", "no", "no", "no", "no", "no", "no", "1", "no", "no", 
"no", "no", "no", "no", "no", "no", "no", "2", "no", "no", "no", 
"no", "no", "no", "no", "no", "no", "3", "no", "no", "no", "no", 
"no", "no", "no", "no", "no", "1", "no", "no", "no", "no", "no", 
"no", "no", "no", "no", "1", "no", "no", "no", "no", "no", "no", 
"no", "no", "no", "3", "no", "no", "no", "no", "no", "no", "no", 
"no", "no", "1", "no", "no", "no", "no", "no", "no", "no", "no", 
"no", "1", "no", "no", "no", "no", "no", "no", "no", "no", "no", 
"1", "no", "no", "no", "no", "no", "no", "no", "no", "no", "1", 
"no", "no", "no", "no", "no", "no", "no", "no", "no", "4", "no", 
"no", "no", "no", "no", "no", "no", "no", "no", "0", "no", "no", 
"no", "no", "no", "no", "no", "no", "no", "3", "no", "no", "no", 
"no", "no", "no", "no", "no", "no", "3", "no", "no", "no", "no", 
"no", "no", "no", "no", "no", "1", "no", "no", "no", "no", "no", 
"no", "no", "no", "no", "1", "no", "no", "no", "no", "no", "no", 
"no", "no", "no", "2", "no", "no", "no", "no", "no", "no", "no", 
"no", "no", "2", "no", "no", "no", "no", "no", "no", "no", "no", 
"no", "1", "no", "no", "no", "no", "no", "no", "no", "no", "no", 
"0", "1", "no", "no", "no", "no", "no", "no", "no", "no", "no", 
"2", "no", "no", "no", "no", "no", "no", "no", "no", "no", "1", 
"no", "no", "no", "no", "no", "no", "no", "no", "no", "3", "no", 
"no", "no", "no", "no", "no", "no", "no", "no", "0", "no", "no", 
"no", "no", "no", "no", "no", "no", "no", "0", "no", "no", "no", 
"no", "no", "no", "no", "no", "no", "0", "no", "no", "no", "no", 
"no", "no", "no", "no", "no", "3", "no", "no", "no", "no", "no", 
"no", "no", "no", "no", "2", "no", "no", "no", "no", "no", "no", 
"no", "no", "no", "3", "no", "no", "no", "no", "no", "no", "no", 
"no", "no", "2", "no", "no", "no", "no", "no", "no", "no", "no", 
"no", "1", "no", "no", "no", "no", "no", "no", "no", "no", "no", 
"3", "no", "no", "no", "no", "no", "no", "no", "no", "no", "2", 
"no", "no", "no", "no", "no", "no", "no", "no", "no", "2", "no", 
"no", "no", "no", "no", "no", "no", "no", "no", "1", "no", "no", 
"no", "no", "no", "no", "no", "no", "no", "2", "no", "no", "no", 
"no", "no", "no", "no", "no", "no", "0", "no", "no", "no", "no", 
"no", "no", "no", "no", "no", "4", "no", "no", "no", "no", "no", 
"no", "no", "no", "no", "4", "no", "no", "no", "no", "no", "no", 
"no", "no", "no", "3", "no", "no", "no", "no", "no", "no", "no", 
"no", "no", "1", "no", "no", "no", "no", "no", "no", "no", "no", 
"no", "3", "no", "no", "no", "no", "no", "no", "no", "no", "no", 
"2", "no", "no", "no", "no", "no", "no", "no", "no", "no", "0", 
"no", "no", "no", "no", "no", "no", "no", "no", "no", "1", "no", 
"no", "no", "no", "no", "no", "no", "no", "no", "0", "no", "no", 
"no", "no", "no", "no", "no", "no", "no", "4", "no", "no", "no", 
"no", "no", "no", "no", "no", "no", "1", "no", "no", "no", "no", 
"no", "no", "no", "no", "no", "1", "no", "no", "no", "no", "no", 
"no", "no", "no", "no", "1")), row.names = c(NA, -602L), class = "data.frame")

我需要做的是:

编辑:这是预期输出的一个例子。这应该对所有组(我的原始数据集中有很多组)和所有参考行进行。我只选择了几个来给出更广泛的结果(即我从 00:00:50 跳到 00:01:30)。

structure(list(ID = c("A1", "A1", "A1", "A1", "A1", "A1", "A1"
), Value = c(1, 0, 1, 1, 1, 3, 3), Time = structure(c(1611925200, 
1611925210, 1611925220, 1611925230, 1611925240, 1611925250, 1611925290
), class = c("POSIXct", "POSIXt"), tzone = "")), row.names = c(NA, 
-7L), class = "data.frame")

我认为我应该为这些行中的每一行创建一个分组变量,然后使用该summarise函数将它们组合起来。但是,我无法解决这个问题。任何帮助将不胜感激!

标签: rdata.tabletidyverse

解决方案


这是一种方法(dt作为您的数据集):

library(data.table)
setDT(dt)

dt[, cs := cumsum(Value), ID]
gdt <- dt[toTake != 'no', .(ID, Time, Seq, toTake = as.integer(toTake))]
gdt[, `:=`(
  from = pmax(0, Seq - toTake + toTake %/% 2),
  to = pmin(300, Seq + toTake %/% 2)
  )]
gdt[, Value := dt[gdt, cs, on = c('ID', 'Seq' = 'to')] - 
    dt[gdt, cs - Value, on = c('ID', 'Seq' = 'from')]]
gdt[1:10]

#>     ID                Time Seq toTake from to Value
#>  1: A1 2021-01-29 13:00:00   0      3    0  1     1
#>  2: A1 2021-01-29 13:00:10  10      0   10 10     0
#>  3: A1 2021-01-29 13:00:20  20      2   19 21     1
#>  4: A1 2021-01-29 13:00:30  30      2   29 31     1
#>  5: A1 2021-01-29 13:00:40  40      1   39 40     1
#>  6: A1 2021-01-29 13:00:50  50      4   48 52     3
#>  7: A1 2021-01-29 13:01:00  60      2   59 61     2
#>  8: A1 2021-01-29 13:01:10  70      0   70 70     1
#>  9: A1 2021-01-29 13:01:20  80      2   79 81     4
#> 10: A1 2021-01-29 13:01:30  90      3   88 91     3

您可能需要计算出Seq每个组的最大值并gdt在较早的阶段加入,以便pmin总体上正确地完成该位。


推荐阅读