小编nat*_*tys的帖子

将值从一列复制到给定条件的下一列

我有如下二进制数据:

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

17
推荐指数
7
解决办法
3267
查看次数

标签 统计

r ×1