在这个具体案例中,我相信pmin
诀窍是:
POP.Start.final <- pmin(combinedOM$Cons.Start.Date.y,
combinedOM$OS.Start.Date.y,
na.rm=TRUE)
在一般情况下,SIMPLIFY=TRUE
(默认)使用效用函数simplify2array
将列表转换为原子模式向量as.vector
。因为日期在内部存储为数字,SIMPLIFY=TRUE
将日期列表转换为数字模式向量并删除Date
班级。您可以设置SIMPLIFY=FALSE
保持Date
类然后使用do.call
with c
将列表转换为向量。
POP.Start.final <- do.call(c,mapply(min, combinedOM$Cons.Start.Date.y,
combinedOM$OS.Start.Date.y,
MoreArgs = list(na.rm=TRUE),SIMPLIFY=FALSE))
一些可重现的代码:
a <- as.Date(c("2012-01-11","2012-06-30","2012-04-18"))
b <- as.Date(c("2013-04-21","2012-03-22","2012-05-01"))
pmin(a,b)
#[1] "2012-01-11" "2012-03-22" "2012-04-18"
do.call(c,mapply(min,a,b,MoreArgs=list(na.rm=TRUE),SIMPLIFY=FALSE))
#[1] "2012-01-11" "2012-03-22" "2012-04-18"
顺便说一句,使用T
and F
for TRUE
and FALSE
有点令人担忧,因为T
and F
可以重新分配TRUE
and FALSE
不能重新分配。