我有如下二进制数据:
ID <- c("A", "B", "C", "D", "E", "F")
Q0 <- c(0, 0, 0, 0, 0, 0)
Q1 <- c(0, 1, 0, 0, NA, 1)
Q2 <- c(0, NA, 1, 0, NA, 1)
Q3 <- c(0, NA, NA, 1, NA, 1)
Q4 <- c(0, NA, NA, 1, NA, 1)
dta <- data.frame(ID, Q0, Q1, Q2, Q3, Q4)
Run Code Online (Sandbox Code Playgroud)
如果其中一列中的行为 1,则所有后续列也应为 1。如果有 0 或 NA,则下一列应保持原样。
换句话说,如何根据相对位置中列的值有条件地更改多个列的值?
上述数据框的预期输出是:
ID Q0 Q1 Q2 Q3 Q4
A 0 0 0 0 0
B 0 1 …Run Code Online (Sandbox Code Playgroud) r ×1