2017-07-27 9 views
1

我有两列日期。第一列偶尔有空白。我想创建一个新的变量,从任一列返回该行的最大日期。R中两个日期的新变量较小

date1<-c(NaN,"01-11-07","30-11-07","17-12-07","12-12-08") 
date2<-c("23-01-08", "01-11-07","29-11-07","19-12-07","12-12-08") 
df<-data.frame(date1, date2) df$date1<-as.Date(date1, format = 
"%d-%m-%y") df$date2<-as.Date(date2, format = "%d-%m-%y") 
df$mindate<-pmin(df, date1, date2, na.rm = TRUE) 

目前的最后一行给我一个错误:

In pmin(df, date1, date2, na.rm = TRUE) : 
an argument will be fractionally recycled 

并将所得数据框中没有数据。

谢谢。

+0

在Excel我通常使用公式如下所示:= IF([ @ [Date1]] =“”,[@ [Date2]],MIN([@ [Date1]],[@ [Date2]])) –

+0

在每种语言中, le是不同的。 – akrun

回答

0

pmin不起作用像with

pmin(df$date1, df$date2, na.rm = TRUE) 
#[1] "2008-01-23" "2007-11-01" "2007-11-29" "2007-12-17" "2008-12-12" 

或者

with(df, pmin(date1, date2, na.rm = TRUE)) 
#[1] "2008-01-23" "2007-11-01" "2007-11-29" "2007-12-17" "2008-12-12" 

或者更紧凑地

do.call(pmin, c(df, na.rm = TRUE)) 
#[1] "2008-01-23" "2007-11-01" "2007-11-29" "2007-12-17" "2008-12-12"