在缺少数据R的情况下,使用pmin查找r中的最早日期-更新

问题描述

我当前正在尝试创建一个新变量,以在两个变量之间返回最早的日期。我已经使用了pmin()函数,并且在两个变量中都有可用日期的实例中没有问题。在一个变量上缺少日期,而另一个变量上存在日期的情况下,理想情况下,我希望代码在后一个变量中返回日期。相反,返回了NA,但我还没有弄清楚如何解决这个问题。

我的代码如下:

b'-,\x2Dq\x2C\x07\x71\x94\x15\x01\x02\xb3\xb3\xb3\xb3\xb3'?

任何帮助将不胜感激!

更新:用户Duck和Wimpel强调了na.rm的位置错误。上面的代码现在可以按需工作了。

解决方法

这是data.table的事物方式

library( data.table )
#make it a data.table
setDT(df)
#set dates as real date
cols = grep( "^Date",names(df),value = TRUE )
df[,(cols) := lapply( .SD,as.Date,format = "%d/%m/%Y"),.SDcols = cols]
#find minumum date in date-columns
df[,earliest_date := do.call( pmin,c( .SD,list( na.rm = TRUE ) ) ),.SDcols = cols ]

#      ID disease_code Date_of_diagnosis_1 Date_of_diagnosis_2 earliest_date
# 1: 1001            1                <NA>          1998-06-12    1998-06-12
# 2: 1002            1          1997-06-13                <NA>    1997-06-13
# 3: 1003            0                <NA>                <NA>          <NA>
# 4: 1004            1                <NA>          2001-09-18    2001-09-18
# 5: 1005            0                <NA>                <NA>          <NA>