的不平等,我想創建一個基於日期的三列的不平等0和1的列的0和1列。創建基於三個日期列
的想法如下。如果event_date
是death_date
或study_over
之前,所述列event
應== 1,如果發生event_date
death_date
或study_over
後,event
應== 0,這兩種event_date
和death_date
可能包含的NA。
set.seed(1337)
rand_dates <- Sys.Date() - 365:1
df <-
data.frame(
event_date = sample(rand_dates, 20),
death_date = sample(rand_dates, 20),
study_over = sample(rand_dates, 20)
)
我的嘗試是以下
eventR <-
function(x, y, z){
if(is.na(y)){
ifelse(x <= z, 1, 0)
} else if(y <= z){
ifelse(x < y, 1, 0)
} else {
ifelse(x <= z, 1, 0)
}
}
我用它通過以下方式
library(dplyr)
df[c(3, 5, 7), "event_date"] <- NA #there are some NA in .$event_date
df[c(3, 4, 6), "death_date"] <- NA #there are some NA in .$death_date
df %>%
mutate(event = sapply(.$event_date, eventR, y = .$death_date, z = .$study_over))
##Error: wrong result size (400), expected 20 or 1
##In addition: There were 40 warnings (use warnings() to see them)
我無法弄清楚如何做到這一點。有什麼建議麼?
你的描述似乎顯得有些不一致(對我來說)*「death_date之前** **或study_over」 *它的一個,而*「death_date後發生**或** study_over「*它是零。它有可能在death_rate之前,但在study_over之後?如果是這樣,那麼什麼樣的價值應該是採取 – user20650
@ user20650我無法弄清楚如何將其硬編碼到函數。在後用df [is.na(事件), 「事件」] <固定它 - 0。 – user6571411