我写了一个函数,以日期格式模拟一些患者数据(入院日期,用药日期等)。
dates <- function(x){
start_date <- as.Date(sample(seq(as.Date("2016-01-01"), as.Date("2016-12-31"), 1), 1))
end_date <- as.Date(sample(seq(start_date, start_date + 20, 1), 1))
ab_start <- as.Date(sample(seq(start_date, start_date + 3, 1), 1))
ab_stop <- as.Date(sample(seq(ab_start, end_date, 1), 1))
bc_date <- as.Date(sample(seq(start_date-1, start_date + 4, 1), 1))
a <- data_frame(adm_start_date = start_date, adm_end_date = end_date, ab_start_date = ab_start,
ab_stop_date = ab_stop, bc_date = bc_date)
return(a)
}
这本身可以正常工作,我想通过id
将这些日期添加到现有的患者列表中test <- data_frame(id = seq(1,10,1))
我为adm_start_date
和adm_end_date
尝试了这种方法:
test %>% group_by(id) %>% rowwise() %>% mutate(adm_start_date = dates()$adm_start_date, adm_end_date = dateR()$adm_end_date)
适用于test[1,]
,但会针对任何n&gt;抛出此错误1:
Error in mutate_impl(.data, dots) :
Evaluation error: wrong sign in 'by' argument.
有人知道为什么吗?很多!