如何计算不同 Dataframe 片段的时间间隔?

ruarlubt  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(180)

我需要计算每个ID的行为状态跟踪持续多长时间。请注意,对于每个ID,状态都是重复的,然后另一个状态类别开始。如何计算每个状态跟踪的时间间隔?

dput(States_time)
structure(list(lon = c(-28.3595, -28.2916, -28.2814, -28.2811, 
-28.2941, -28.2987, -28.3056, -28.3009, -28.2965, -28.298, -28.2827, 
-28.2747, -28.275, -28.28, -28.2778, -28.2989, -28.3993, -28.5896, 
-28.6515, -28.6625, -28.6526, -28.6297, -28.6011, -28.5733, -28.5489, 
-28.5236, -28.5112, -28.4849, -28.4602, -28.4421, -28.4144, -28.3996, 
-28.2903, -27.9601, -27.7619, -27.6135, -27.4749, -27.3197, -27.1767, 
-27.018, -26.8653, -26.7084, -26.5583, -26.4027, -26.2577, -26.1213, 
-26.0116, -25.9065, -25.8206, -25.776, -25.7385, -25.6924, -25.6358, 
-25.5908, -25.5518, -25.5243, -25.4925, -25.4853, -25.4661, -25.4356, 
-25.4173, -25.395, -25.3735, -25.3381, -25.301, -25.2703, -25.239, 
-25.1921, -25.1499, -25.0827, -25.0187, -24.9652, -24.9143, -24.8738, 
-24.8267, -24.7986, -24.7854, -24.7649, -24.7566, -24.739, -24.7048, 
-24.6733, -24.6437, -24.6048, -24.567, -24.5339, -24.4894, -24.4492, 
-24.4036, -24.3487, -24.2806, -24.2065, -24.1409, -24.0692, -24.0127, 
-24.0053, -24.2019, -24.0767, -24.0857, -24.1316, -24.2088, -24.2969, 
-24.3794, -24.4611, -24.5548, -24.635, -24.7181, -24.8224, -24.9065, 
-24.9912, -25.0784, -25.1429, -25.1876, -25.169, -25.1462, -25.1207, 
-25.0841, -25.0688, -25.0547, -25.0419, -25.0361, -25.03, -25.0209, 
-25.0247, -25.0133, -24.9938, -24.9714, -24.9025, -24.7087, -34.1, 
-34.0755, -34.2068, -34.1481, -34.1995, -34.298, -34.2026, -34.2008, 
-34.0994, -34.1009, -34.1302, -34.1662, -34.2025, -34.2, -34.3016, 
-34.5, -34.4988, -34.5454, -34.5284, -34.6043, -34.5097, -34.6, 
-34.6999, -34.7861, -34.7044, -34.7994, -34.8637, -34.8, -34.7999, 
-34.8693, -35.0269, -35.0142, -35.0679, -35.0177, -35.2996, -35.2996, 
-35.2021, -35.1966, -35.0775, -35.2, -35.2, -35.3, -35.7, -35.9001, 
-36.0981, -35.9, -35.995, -35.9979, -36.0999, -36.3085, -36.6099, 
-36.5084, -36.292, -36.1978, -36.189, -36.088, -35.8531, -35.8039, 
-35.7001, -35.6, -35.6058, -35.6993, -35.5269, -35.5111, -35.584, 
-35.4749, -35.2995, -35.3, -35.3011, -35.3161, -35.4912, -35.4005, 
-35.3032, -35.3646, -35.4001, -35.3999, -35.3221, -35.4987, -35.3992, 
-35.4657, -35.5036, -35.5953, -35.452, -35.3996, -35.1007, -35.0992, 
-35, -34.9153, -34.8997, -34.9, -34.6695, -34.5, -34.4998, -34.4936, 
-34.4881, -34.5, -34.5088, -34.4909, -34.4215, -34.4, -34.4221, 
-34.3077, -34.2982, -34.201, -34.2329, -34.1874, -34.2, -34.1586, 
-34.0904, -33.9012, -33.9001, -33.7038, -33.7, -33.6981, -33.6, 
-33.554, -33.4017, -33.3853, -33.2722, -33.2, -33.1011, -33.1258, 
-33.3458, -33.1016, -32.6021, -32.5, -32.3, -32.2, -32.0999, 
-31.9997, -31.9731, -32, -31.9696, -31.9999, -31.8999, -31.7995, 
-31.7, -31.6, -31.6052, -31.6, -31.4005, -31.2285, -30.914, -30.7997, 
-30.7609, -30.8, -30.7, -30.7982, -30.6994, -30.8006, -30.6992, 
-30.6999, -30.7685, -30.6001, -30.5999, -30.3, -30.2995, -30.3537, 
-30.2966, -30.3997, -30.3024, -30.1991, -29.8679, -29.4235, -29.2194, 
-29, -28.8005, -28.8, -28.8, -28.8, -28.7344, -28.7317, -28.7, 
-28.5802, -28.4976, -28.3992, -28.2977, -28.2457, -28.1993, -28.2, 
-28.0999, -28.2, -28.1015, -28.1, -28.0994, -28.0735, -28.0135, 
-28.0711, -28.0002, -28.0995, -28.0001, -28, -27.9999, -27.9095, 
-27.9803, -27.9992, -27.8006, -27.9, -27.9993, -27.9026, -27.6922, 
-27.7993, -27.7999, -27.8, -27.8456, -27.8, -27.8, -28.002, -28.1069, 
-27.9001, -27.8999, -27.8192, -27.7465, -27.7, -27.6793, -27.6142, 
-27.6106, -27.6587, -27.7007, -27.9773, -27.9611, -27.8003, -27.8009, 
-27.8006, -27.8481, -27.7925, -27.8742, -28.1019, -28.301, -28.2001, 
-28.4997, -28.5999, -28.7916, -28.6931, -28.5978, -28.7253, -28.697, 
-28.7, -28.7, -28.8035, -29.0898, -28.7286, -29.032, -29.1002, 
-29.2061, -29.3832, -29.536, -29.5018, -29.5996, -29.5307, -29.5311, 
-29.5617, -29.7, -29.7017), lat = c(-51.06006, -51.28517, -51.40259, 
-51.48351, -51.52873, -51.56416, -51.59571, -51.63744, -51.67779, 
-51.72939, -51.78254, -51.84945, -51.94071, -52.02408, -52.10333, 
-52.1629, -52.16154, -52.17246, -52.21171, -52.28003, -52.35472, 
-52.44014, -52.52132, -52.60039, -52.66922, -52.73575, -52.78971, 
-52.85371, -52.9003, -52.93157, -52.96226, -52.99958, -53.09385, 
-53.24145, -53.29013, -53.28483, -53.26885, -53.24375, -53.21312, 
-53.19024, -53.16994, -53.13826, -53.09963, -53.06583, -53.01386, 
-52.96535, -52.93325, -52.92167, -52.96504, -53.0329, -53.10186, 
-53.16542, -53.2373, -53.30987, -53.38074, -53.43605, -53.48412, 
-53.5254, -53.55489, -53.60127, -53.62973, -53.67887, -53.73908, 
-53.80004, -53.88948, -53.96345, -54.02259, -54.07842, -54.12353, 
-54.19933, -54.26942, -54.33925, -54.40561, -54.47321, -54.54209, 
-54.60073, -54.66368, -54.69002, -54.68796, -54.68729, -54.66922, 
-54.66249, -54.66347, -54.67504, -54.67826, -54.66793, -54.66168, 
-54.64167, -54.62624, -54.61335, -54.6161, -54.62989, -54.65052, 
-54.68577, -54.72183, -54.78754, -54.91899, -54.72204, -54.69924, 
-54.72291, -54.75192, -54.78754, -54.83085, -54.88303, -54.9501, 
-55.01851, -55.08152, -55.13521, -55.18038, -55.20593, -55.2436, 
-55.24347, -55.17465, -55.1805, -55.21629, -55.27335, -55.33738, 
-55.39316, -55.4478, -55.49499, -55.52758, -55.57528, -55.61018, 
-55.64505, -55.68691, -55.71773, -55.74487, -55.72205, -55.60666, 
-51.13792, -51.17052, -51.3451, -51.4629, -51.47005, -51.42874, 
-51.4272, -51.68723, -51.81362, -51.75005, -51.76939, -51.76007, 
-51.75012, -51.73492, -51.73968, -51.98032, -52.05917, -52.02466, 
-52.04233, -52.03264, -52.02026, -52.03165, -52.0607, -52.24141, 
-52.09744, -52.07395, -52.08017, -52.15966, -52.18366, -52.2111, 
-52.24547, -52.27173, -52.36574, -52.40889, -52.6732, -53.00803, 
-53.16961, -53.37446, -53.70476, -53.80153, -53.77921, -53.71024, 
-53.75746, -53.75865, -53.73004, -53.64385, -53.62506, -53.67841, 
-53.60954, -53.62173, -53.65541, -53.80536, -53.78368, -53.81837, 
-53.84945, -53.84896, -53.85606, -53.883, -53.8963, -53.86775, 
-53.9305, -53.91549, -53.92121, -53.9488, -53.89267, -53.90644, 
-54.09036, -53.95329, -53.95036, -53.94051, -53.87723, -53.86579, 
-53.82513, -53.69677, -53.42409, -53.40176, -53.38414, -53.33449, 
-53.43198, -53.37085, -53.29052, -53.34959, -53.15344, -53.23876, 
-53.31791, -53.34568, -53.37738, -53.40082, -53.39937, -53.52188, 
-53.76661, -54.02559, -54.18722, -54.21053, -54.20398, -54.2249, 
-54.2416, -54.18884, -54.20042, -54.18864, -54.19856, -54.29201, 
-54.31143, -54.33484, -54.25884, -54.25269, -54.26423, -54.26734, 
-54.2685, -54.22733, -54.24499, -54.24012, -54.25105, -54.27297, 
-54.30706, -54.31001, -54.37102, -54.37937, -54.44155, -54.48134, 
-54.53592, -54.59169, -54.45268, -54.55661, -54.69559, -54.76132, 
-54.83257, -54.86716, -54.86818, -54.89168, -54.87052, -54.87898, 
-54.75036, -54.87729, -54.87221, -54.82877, -54.83236, -54.81084, 
-54.80782, -54.7802, -54.78806, -54.80395, -54.79016, -54.79585, 
-54.84057, -54.86429, -54.86168, -54.89269, -54.82421, -54.94506, 
-55.06045, -54.99855, -55.08724, -54.95141, -54.98314, -54.91695, 
-54.9283, -54.91034, -54.69406, -54.5147, -54.50343, -54.52586, 
-54.60164, -54.57242, -54.62384, -54.73504, -54.71507, -54.80268, 
-54.79076, -54.85857, -55.09139, -55.22931, -55.48602, -55.40168, 
-55.3541, -55.40575, -55.3628, -55.37155, -55.377, -55.35164, 
-55.35345, -55.33444, -55.32451, -55.30861, -55.31914, -55.30992, 
-55.29195, -55.2648, -55.24832, -55.24193, -55.22511, -55.18921, 
-55.19439, -55.21504, -55.22035, -55.22813, -55.18929, -55.22937, 
-55.22085, -55.26273, -55.21107, -55.24041, -55.21117, -55.22153, 
-55.25639, -55.21879, -55.1953, -55.01422, -54.89181, -54.9697, 
-54.96593, -55.23091, -55.3906, -55.2657, -55.29315, -55.33206, 
-55.34862, -55.37101, -55.35072, -55.46937, -55.43232, -55.4311, 
-55.47295, -55.47624, -55.52129, -55.51233, -55.54909, -55.6934, 
-55.79863, -55.73806, -56.03811, -56.08909, -56.29905, -56.3, 
-56.35134, -56.25699, -56.20255, -56.24877, -56.28026, -56.27907, 
-56.2477, -56.31938, -56.56267, -56.88127, -56.99994, -57.01007, 
-57.06402, -57.15684, -57.14518, -57.1525, -57.19671, -57.23882, 
-57.21254, -57.20548), ID = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 
110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L, 110L), levels = c("7617.05", 
"7618.05", "10946.05", "20162.03", "20687.03", "21791.03", "21792.03", 
"21800.03", "21809.03", "21810.03", "24640.03", "24641.05", "24642.03", 
"26712.05", "27258.05", "27259.03", "27259.05", "27259.06", "27261.03", 
"27261.05", "27261.07", "33000.05", "33000.06", "33001.05", "33001.06", 
"37229.05", "37229.06", "37230.06", "37231.05", "37231.07", "37234.05", 
"37234.06", "37236.06", "37282.06", "37286.07", "37288.06", "37288.07", 
"42521.06", "42521.07", "42525.07", "50682.06", "50682.07", "50686.07", 
"50687.07", "60004.07", "60007.07", "81122.09", "81123.09", "81124.09", 
"81125.09", "81126.09", "84480.12", "84484.17", "84484.18", "84485.17", 
"84485.18", "84497.1", "87624.1", "87631.1", "87632.12", "87635.17", 
"87640.18", "87759.08", "87760.08", "87761.08", "87762.08", "87763.08", 
"87764.08", "87765.08", "87766.08", "87767.08", "87768.08", "87768.11", 
"87769.11", "87770.08", "87771.09", "87773.08", "87773.09", "87773.1", 
"87773.11", "87774.08", "87774.09", "87774.11", "87775.08", "87775.12", 
"87776.08", "87776.11", "87776.17", "87777.08", "87777.1", "87777.17", 
"87778.08", "87778.1", "87780.17", "87781.1", "87783.09", "87783.11", 
"88719.09", "88720.09", "88724.1", "88726.1", "88727.09", "96380.1", 
"102211.1", "111868.11", "111868.16", "111868.18", "111869.11", 
"111869.17", "111870.17", "111870.18", "111871.12", "112694.12", 
"112696.17", "112696.18", "112702.12", "112706.18", "112712.12", 
"112714.12", "112717.12", "112719.18", "112728.17", "120937.17", 
"120938.16", "120938.18", "120942.17", "120942.18", "120943.17", 
"120947.12", "120947.17", "121189.12", "121191.17", "121191.18", 
"121192.12", "121193.12", "121195.12", "121196.12", "121203.17", 
"121206.17", "123226.17", "171994.17", "171994.18", "171995.18", 
"171997.17", "172000.17", "172001.17", "172002.17", "172003.17", 
"172004.17", "172008.18", "194591.19", "194593.19", "194601.19", 
"194603.19"), class = "factor"), sex = structure(c(1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), levels = c("F", 
"I", "M"), class = "factor"), timestamp_adjusted = structure(c(1133496000, 
1133517600, 1133539200, 1133560800, 1133582400, 1133604000, 1133625600, 
1133647200, 1133668800, 1133690400, 1133712000, 1133733600, 1133755200, 
1133776800, 1133798400, 1133820000, 1133841600, 1133863200, 1133884800, 
1133906400, 1133928000, 1133949600, 1133971200, 1133992800, 1134014400, 
1134036000, 1134057600, 1134079200, 1134100800, 1134122400, 1134144000, 
1134165600, 1134187200, 1134208800, 1134230400, 1134252000, 1134273600, 
1134295200, 1134316800, 1134338400, 1134360000, 1134381600, 1134403200, 
1134424800, 1134446400, 1134468000, 1134489600, 1134511200, 1134532800, 
1134554400, 1134576000, 1134597600, 1134619200, 1134640800, 1134662400, 
1134684000, 1134705600, 1134727200, 1134748800, 1134770400, 1134792000, 
1134813600, 1134835200, 1134856800, 1134878400, 1134900000, 1134921600, 
1134943200, 1134964800, 1134986400, 1135008000, 1135029600, 1135051200, 
1135072800, 1135094400, 1135116000, 1135137600, 1135159200, 1135180800, 
1135202400, 1135224000, 1135245600, 1135267200, 1135288800, 1135310400, 
1135332000, 1135353600, 1135375200, 1135396800, 1135418400, 1135440000, 
1135461600, 1135483200, 1135504800, 1135526400, 1135548000, 1135569600, 
1135591200, 1135612800, 1135634400, 1135656000, 1135677600, 1135699200, 
1135720800, 1135742400, 1135764000, 1135785600, 1135807200, 1135828800, 
1135850400, 1135872000, 1135893600, 1135915200, 1135936800, 1135958400, 
1135980000, 1136001600, 1136023200, 1136044800, 1136066400, 1136088000, 
1136109600, 1136131200, 1136152800, 1136174400, 1136196000, 1136217600, 
1136239200, 1136260800, 1512511200, 1512532800, 1512554400, 1512576000, 
1512597600, 1512619200, 1512640800, 1512662400, 1512684000, 1512705600, 
1512727200, 1512748800, 1512770400, 1512792000, 1512813600, 1512835200, 
1512856800, 1512878400, 1512900000, 1512921600, 1512943200, 1512964800, 
1512986400, 1513008000, 1513029600, 1513051200, 1513072800, 1513094400, 
1513116000, 1513137600, 1513159200, 1513180800, 1513202400, 1513224000, 
1513245600, 1513267200, 1513288800, 1513310400, 1513332000, 1513353600, 
1513375200, 1513396800, 1513418400, 1513440000, 1513461600, 1513483200, 
1513504800, 1513526400, 1513548000, 1513569600, 1513591200, 1513612800, 
1513634400, 1513656000, 1513677600, 1513699200, 1513720800, 1513742400, 
1513764000, 1513785600, 1513807200, 1513828800, 1513850400, 1513872000, 
1513893600, 1513915200, 1513936800, 1513958400, 1513980000, 1514001600, 
1514023200, 1514044800, 1514066400, 1514088000, 1514109600, 1514131200, 
1514152800, 1514174400, 1514196000, 1514217600, 1514239200, 1514260800, 
1514282400, 1514304000, 1514325600, 1514347200, 1514368800, 1514390400, 
1514412000, 1514433600, 1514455200, 1514476800, 1514498400, 1514520000, 
1514541600, 1514563200, 1514584800, 1514606400, 1514628000, 1514649600, 
1514671200, 1514692800, 1514714400, 1514736000, 1514757600, 1514779200, 
1514800800, 1514822400, 1514844000, 1514865600, 1514887200, 1514908800, 
1514930400, 1514952000, 1514973600, 1514995200, 1515016800, 1515038400, 
1515060000, 1515081600, 1515103200, 1515124800, 1515146400, 1515168000, 
1515189600, 1515211200, 1515232800, 1515254400, 1515276000, 1515297600, 
1515319200, 1515340800, 1515362400, 1515384000, 1515405600, 1515427200, 
1515448800, 1515470400, 1515492000, 1515513600, 1515535200, 1515556800, 
1515578400, 1515600000, 1515621600, 1515643200, 1515664800, 1515686400, 
1515708000, 1515729600, 1515751200, 1515772800, 1515794400, 1515816000, 
1515837600, 1515859200, 1515880800, 1515902400, 1515924000, 1515945600, 
1515967200, 1515988800, 1516010400, 1516032000, 1516053600, 1516075200, 
1516096800, 1516118400, 1516140000, 1516161600, 1516183200, 1516204800, 
1516226400, 1516248000, 1516269600, 1516291200, 1516312800, 1516334400, 
1516356000, 1516377600, 1516399200, 1516420800, 1516442400, 1516464000, 
1516485600, 1516507200, 1516528800, 1516550400, 1516572000, 1516593600, 
1516615200, 1516636800, 1516658400, 1516680000, 1516701600, 1516723200, 
1516744800, 1516766400, 1516788000, 1516809600, 1516831200, 1516852800, 
1516874400, 1516896000, 1516917600, 1516939200, 1516960800, 1516982400, 
1517004000, 1517025600, 1517047200, 1517068800, 1517090400, 1517112000, 
1517133600, 1517155200, 1517176800, 1517198400, 1517220000, 1517241600, 
1517263200, 1517284800, 1517306400, 1517328000, 1517349600, 1517371200, 
1517392800, 1517414400, 1517436000, 1517457600, 1517479200, 1517500800, 
1517522400, 1517544000, 1517565600, 1517587200, 1517608800, 1517630400, 
1517652000, 1517673600, 1517695200, 1517716800, 1517738400, 1517760000, 
1517781600, 1517803200, 1517824800, 1517846400, 1517868000, 1517889600, 
1517911200, 1517932800, 1517954400, 1517976000), class = c("POSIXct", 
"POSIXt"), tzone = "UTC"), States = c("IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "TRANS", "TRANS", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "ARS", "ARS", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "TRANS", "TRANS", "TRANS", "TRANS", 
"TRANS", "TRANS", "TRANS", "TRANS", "TRANS", "TRANS", "TRANS", 
"TRANS", "ARS", "ARS", "IND", "IND", "TRANS", "TRANS", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "ARS", "ARS", "IND", 
"IND", "IND", "IND", "IND", "TRANS", "IND", "IND", "ARS", "ARS", 
"ARS", "IND", "ARS", "ARS", "ARS", "IND", "IND", "IND", "IND", 
"TRANS", "TRANS", "TRANS", "TRANS", "TRANS", "TRANS", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "ARS", "TRANS", "TRANS", "TRANS", "TRANS", "TRANS", "TRANS", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "TRANS", "TRANS", "TRANS", "TRANS", "IND", "IND", "IND", 
"ARS", "ARS", "ARS", "ARS", "ARS", "ARS", "ARS", "ARS", "IND", 
"IND", "IND", "IND", "TRANS", "IND", "TRANS", "TRANS", "TRANS", 
"TRANS", "TRANS", "TRANS", "TRANS", "TRANS", "TRANS", "TRANS", 
"TRANS", "TRANS", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "ARS", 
"IND", "IND", "IND", "ARS", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", "IND", 
"IND", "IND", "TRANS", "TRANS", "ARS", "ARS", "IND", "IND", "ARS", 
"ARS", "ARS", "ARS", "IND", "IND", "IND", "IND", "ARS", "ARS", 
"TRANS", "TRANS", "TRANS", "TRANS", "IND", "IND", "IND", "IND", 
"IND", "IND", "IND", "IND")), row.names = c("317", "318", "319", 
"320", "321", "322", "323", "324", "325", "326", "327", "328", 
"329", "330", "331", "332", "333", "334", "335", "336", "337", 
"338", "339", "340", "341", "342", "343", "344", "345", "346", 
"347", "348", "349", "350", "351", "352", "353", "354", "355", 
"356", "357", "358", "359", "360", "361", "362", "363", "364", 
"365", "366", "367", "368", "369", "370", "371", "372", "373", 
"374", "375", "376", "377", "378", "379", "380", "381", "382", 
"383", "384", "385", "386", "387", "388", "389", "390", "391", 
"392", "393", "394", "395", "396", "397", "398", "399", "400", 
"401", "402", "403", "404", "405", "406", "407", "408", "409", 
"410", "411", "412", "413", "414", "415", "416", "417", "418", 
"419", "420", "421", "422", "423", "424", "425", "426", "427", 
"428", "429", "430", "431", "432", "433", "434", "435", "436", 
"437", "438", "439", "440", "441", "442", "443", "444", "445", 
"1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", 
"1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", 
"1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", 
"1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", 
"1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", 
"1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", 
"1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", 
"1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", 
"1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", 
"1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", 
"1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", 
"1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", 
"1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", 
"1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", 
"1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", 
"1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", 
"1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", 
"1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", 
"1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", 
"1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", 
"1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", 
"1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", 
"1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", 
"1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", 
"1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", 
"1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", 
"1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", 
"1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", 
"1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", 
"1335", "1336", "1337", "1338", "1339", "1340", "1341", "1342", 
"1343", "1344", "1345", "1346", "1347", "1348", "1349", "1350", 
"1351", "1352", "1353", "1354", "1355", "1356"), class = "data.frame")

我试着按如下方式计算它,但是它将每个行为状态分为每个ID的第一个和最后一个位置。

duration_STATES <- AA_jub %>%
  group_by(id,sex,States) %>%
  slice(c(1, n())) %>%
  ungroup()

duration_STATES2 <- duration_STATES %>% dplyr::group_by(States) %>%
  mutate(dftime = difftime(timestamp_adjusted, lag(timestamp_adjusted), units = "days"))

我需要通过ID来计算每个行为状态轨迹的时间间隔。这将导致如下结果:

ID        sex States Duration
10946.05   F   IND_1   14h
10946.05   F   ARS_1   20h
10946.05   F   IND_2   5h
...

能够计算出每个人在每种行为状态下所花的时间。

3qpi33ja

3qpi33ja1#

您可以使用rleid from data.table来“分组”States中的变化-这将允许您获得给定个人的多个States的时差。

library(tidyverse)
library(data.table)

States_time %>%
  group_by(ID, grp = rleid(States), States) %>%
  summarise(dftime = difftime(last(timestamp_adjusted), first(timestamp_adjusted), units = "days"))

输出

ID          grp States dftime    
   <fct>     <int> <chr>  <drtn>    
 1 10946.05      1 IND     7.75 days
 2 10946.05      2 TRANS   0.25 days
 3 10946.05      3 IND    23.50 days
 4 111870.17     3 IND     5.50 days
 5 111870.17     4 ARS     0.25 days
 6 111870.17     5 IND     1.50 days
 7 111870.17     6 TRANS   2.75 days
 8 111870.17     7 ARS     0.25 days
 9 111870.17     8 IND     0.25 days
10 111870.17     9 TRANS   0.25 days
# … with 34 more rows

相关问题