【发布时间】:2019-07-29 21:44:15
【问题描述】:
我有一个与我在这里使用的结构相同的示例数据框:
df <- data.frame(cond_row = c(rep("no", 10), "yes",
rep("no", 5), "yes", rep("no", 7)),
count_row = 0, stringsAsFactors = FALSE)
df <- df %>%
mutate(count_row = ifelse(cond_row == "yes",
lag(count_row) + 1,
lag(count_row)))
我正在尝试使 count_row 列值在每次 cond_row 中的条件等于“yes”时添加一个,然后让它保持这种状态直到条件再次等于“yes”,然后再添加一个, 等等。在这种情况下,count_row 列应该是 10 个 0、6 个 1 和 7 个 2。问题是 lag() 正确地选择了 ifelse() 中的“是”条件,而不是“否”条件。因此,对于 cond_row 等于“yes”的行,count_row 列的值为 1,但当 cond_row 等于“no”时保持为 0。
【问题讨论】: