如何在 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)
我有一个简单的问题,就是添加一个标志以指示该日期是否超出预定范围。如下图所示,每个都应该在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)