一意の ID ごとに複数のエントリを持つ data.frame があります。定義済みの制限時間である 60 秒を超えている行を特定する必要があります。時間列を分割する必要がある行を示すために、「toolong」という用語が入力された列を既に添付しています。次に、「toolong」を持つ行のすぐ下に新しい行を作成し、アクション列を「l」に変更し、時間列を前回の時間 - 60 に変更することを除いて、「親行」と同じ情報をすべて保持します。親行には、アクション列が「for」に変更され、時間が 60 秒に変更されることを除いて、すべて同じ情報が含まれます。元のデータベースには合計 32 列あるため、アクションと時間以外のすべての行の内容を保持する必要があります。
例:
id <- c(1,1,1,1,2,2,2,2)
resting <- c("f","f","toolong","f","f","f","toolong","f")
action <- c("h","h","l","d","h","h","l","d")
time <- c(90,12,120,14,90,12,110,14)
other <- c(1,2,3,4,5,6,5,4)
dat <- data.frame(cbind(id,resting,action,time,other))
どのように見せたいですか:
id2 resting2 action2 time2 other2
1 1 f h 90 1
2 1 f h 12 2
3 1 toolong for 60 3
4 1 toolong l 60 3
5 1 f d 14 4
6 2 f h 90 5
7 1 f h 12 6
8 2 toolong for 60 5
9 2 toolong l 50 5
10 2 f d 14 4
ありがとう、ティム