我有一个 data.frame,每个唯一 ID 有多个条目。我需要确定哪些行超过了 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
谢谢,蒂姆