我有一個關于添加標志以指示當天是否超出預定范圍的簡單問題。如下圖所示,每個都應該在 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"
......
我知道它不起作用,請幫助我,謝謝!

uj5u.com熱心網友回復:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/325805.html
