如何在 R 中的行记录选择中写入多个 if/else if 条件

How to write multiple if/else if conditions in R on Row record selection

我有一个简单的问题,就是添加一个标志以指示该日期是否超出预定范围。如下图所示,每个都应该在6天范围内发生,例如,对于第2周,应该是9 <= STDTY <= 21,否则将被标记为Flag="Y".

if (data$VISIT=="Screening" & data$STDTY>=-1) {
  data$Flag="Y"
} else if (data$VISIT=="Day 1" & data$STDTY!=1) {
  sv_domain$Flag="Y"
} else if (data$VISIT=="Week 2" & data$STDTY<(2*7+1-6)) {
  data$Flag="Y"
} else if (data$VISIT=="Week 2" & data$STDTY>(2*7+1+6)) {
  data$Flag="Y"

.......

我知道不行,请帮帮我,谢谢!

if/else 未向量化。我们可以使用 ifelse 或更容易地使用 case_when

library(dplyr)
case_when(data$VISIT=="Screening" & data$STDTY>=-1|
 data$VISIT=="Week 2" & data$STDTY<(2*7+1-6)|
 data$VISIT=="Week 2" & data$STDTY>(2*7+1+6) ~ "Y")

ifelse

ifelse(data$VISIT=="Screening" & data$STDTY>=-1|
 data$VISIT=="Week 2" & data$STDTY<(2*7+1-6)|
 data$VISIT=="Week 2" & data$STDTY>(2*7+1+6), "Y", NA)