【发布时间】:2018-11-23 02:52:03
【问题描述】:
您好,非常感谢您的帮助,我在之前的问题中确实找不到解决方案。
我有一个长格式的小标题(按 id 分组并按时间排列的行)。 我想基于“varx”创建一个变量“eleg”。对于每个 ID,如果前 3 行中的“varx” == 0 和当前行 varx == 1,如果不是 = 0,则条件是“eleg”= 1。如果可能的话,使用 dplyr。
id <- c(1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3)
time <- c(1,2,3,4,5,6,7,1,2,3,4,5,6,1,2,3,4)
varx <- c(0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,1)
eleg <- c(0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1)
table <- data.frame(id, time, varx, eleg)
在我的真实数据集中,条件是“在前 24 行中”,如果符合条件,同一个 ID 可能会多次出现 eleg == 1。
谢谢。
【问题讨论】:
-
您是要按
id组执行此操作还是遍历整个df? -
谢谢!我会澄清的!
标签: r if-statement panel-data dplyr