L. *_*tis 6 replace if-statement r vector conditional-statements
考虑向量:
use = c(1,1,2,2,5,1,2,1,2,5,1)
在第一个数字 5 出现在序列中之前,我试图将所有 5 不同的数字替换为 NA:
ifelse(use != 5,NA,1)。之后的条件应该是
ifelse(use != 5,0,1)。
输出将是:
after = c(NA,NA,NA,NA,1,0,0,0,0,1,0)
有小费吗?
您可以使用which来查找目标的位置,然后case_when
use <- c(1,1,2,2,5,1,2,1,2)
first_five <- min(which(use == 5))
dplyr::case_when(
seq_along(use) < first_five ~ NA_real_,
seq_along(use) == first_five ~ 1,
TRUE ~ 0
)
#> [1] NA NA NA NA 1 0 0 0 0
use
#> [1] 1 1 2 2 5 1 2 1 2
Run Code Online (Sandbox Code Playgroud)
由reprex 包(v0.3.0)于 2020-01-14 创建
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |