2017-07-27 51 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"