입니다. 특정 이벤트 간의 날짜 차이를 계산하는 데 많은 시간을 할애했습니다. 예를 들어, 아래에 설정된 데이터가 있습니다. 여기서 t는 이벤트 datetime이고, e는 이벤트 ('A'또는 'R')이고 id는 식별자입니다.특정 이벤트 간의 날짜 차이가 R
t e id 2013-06-15 20:59:17 A 086 2013-06-26 18:02:09 R 086 2013-06-27 03:17:07 A 086 2013-06-01 11:34:09 R 115 2013-06-16 19:59:08 R 522 2013-06-16 20:05:04 R 522 2013-06-07 09:31:15 A 524 2013-06-09 16:24:04 R 524 2013-06-14 03:38:09 A 524 2013-06-16 15:49:09 R 524 2013-06-21 03:54:19 A 524 2013-06-12 12:34:37 A 638 2013-06-12 13:15:27 A 638 2013-06-15 16:12:23 R 638 2013-06-18 22:05:03 A 638 2013-06-28 13:30:20 R 638 2013-06-28 22:20:12 A 638 2013-06-01 18:34:46 A 836 2013-06-01 18:44:53 A 836 2013-06-03 14:35:09 R 836 2013-06-03 20:25:51 A 836 2013-06-03 20:27:25 A 836 2013-06-03 20:32:17 A 836 2013-06-08 16:22:07 R 836 2013-06-12 13:12:21 A 836 2013-06-12 13:15:16 A 836 2013-06-12 13:18:53 A 836 2013-06-12 18:59:24 A 836 2013-06-23 21:14:12 R 836 2013-06-24 20:16:11 R 836 2013-06-25 03:34:29 A 836 2013-06-26 20:33:11 R 836
각 ID, 나는이 'A'이벤트와 'R'이벤트 사이 (일) 날짜 시간 차이가있을 것입니다, 새로운 데이터 세트를 만들 하시겠습니까.
각 id에 대해 : E 이전에 이벤트가 없으면 아무 것도 계산하지 않습니다. 첫 번째 이벤트 A와 첫 번째 이벤트 E가있는 diff 일을 계산하려면 두 이벤트 이전에 세 개의 이벤트 A가있는 경우 이벤트 A 또는 E 만 있으면 아무 것도 계산하지 않습니다. 그런 다음 id = 086, 115, 638에 대해이 duples (id, days) (086, 10.9) (638, 3.2) (638, 9.6)을 얻고 싶습니다. id = 115가 나타나지 않거나 NaN 일 수 있습니다. 단 하나의 이벤트 R과 이벤트 A가 없습니다.
id days 086 10.9 (Ex. 2013-06-26 18:02:09 - 2013-06-15 20:59:17) 524 2.3 524 2.5 638 3.2 638 9.6 836 1.8 836 4.8 (Ex. 2013-06-08 16:22:07 - 2013-06-03 20:25:51) 836 11.3 836 1.7
나는 첫 번째 방법으로이 코드를 사용하고 있습니다 :
집계 (as.POSIXct (안양 $의 t), 목록 (안양 $ 아이디), 차이)에 관한
어떤 아이디어 어떻게해야합니까? 미리 감사드립니다.
dataframe의 dput이다 : 여기서
> dput(df) structure(list(t = c("2013-06-15 20:59:17", "2013-06-26 18:02:09", "2013-06-27 03:17:07", "2013-06-01 11:34:09", "2013-06-16 19:59:08", "2013-06-16 20:05:04", "2013-06-07 09:31:15", "2013-06-09 16:24:04", "2013-06-14 03:38:09", "2013-06-16 15:49:09", "2013-06-21 03:54:19", "2013-06-12 12:34:37", "2013-06-12 13:15:27", "2013-06-15 16:12:23", "2013-06-18 22:05:03", "2013-06-28 13:30:20", "2013-06-28 22:20:12", "2013-06-01 18:34:46", "2013-06-01 18:44:53", "2013-06-03 14:35:09", "2013-06-03 20:25:51", "2013-06-03 20:27:25", "2013-06-03 20:32:17", "2013-06-08 16:22:07", "2013-06-12 13:12:21", "2013-06-12 13:15:16", "2013-06-12 13:18:53", "2013-06-12 18:59:24", "2013-06-23 21:14:12", "2013-06-24 20:16:11", "2013-06-25 03:34:29", "2013-06-26 20:33:11" ), e = c("A", "R", "A", "R", "R", "R", "A", "R", "A", "R", "A", "A", "A", "R", "A", "R", "A", "A", "A", "R", "A", "A", "A", "R", "A", "A", "A", "A", "R", "R", "A", "R"), id = c("086", "086", "086", "115", "522", "522", "524", "524", "524", "524", "524", "638", "638", "638", "638", "638", "638", "836", "836", "836", "836", "836", "836", "836", "836", "836", "836", "836", "836", "836", "836", "836")), .Names = c("t", "e", "id"), row.names = c(855945L, 1481100L, 1508045L, 16944L, 920490L, 921005L, 349201L, 494172L, 746450L, 904442L, 1163757L, 653045L, 654357L, 834901L, 1047932L, 1583218L, 1613753L, 36421L, 37178L, 139968L, 162274L, 162417L, 162804L, 430725L, 654254L, 654350L, 654453L, 670726L, 1333676L, 1384583L, 1401293L, 1491782L), class = "data.frame")
데이터를 입력 할 수 있도록 데이터를 입력 할 수 있습니까? –
@JakeBurkhead : 추가했습니다. 감사! – MSS
출력 결과에 따라 주어진 ID에 대해 여러 시간이 표시되는 경우가 있습니다. 이것이 "첫 번째 이벤트에서 첫 번째 이벤트"에 어떻게 맞습니까? –