1

嗨,我正在研究如下所示的数据集。我正在尝试在日期列上运行 dmy 函数并返回日期,否则返回数据中存在的任何内容。如何将日期输出作为日期而不是长数字。谢谢

> dataF[1:5, 1:5]
 ID_NO     DTTM     DATE_YEAR  TERM    ISSUE_DT
1 1478   4-Sep-06     2006      27     2006-09-14
2 5032  27-Oct-06     2006      36     2006-11-02
3 3192   8-Jan-07     2007      10     2007-01-08
4 3978  28-Jan-07     2007      20     2007-01-31
5 6617   5-Jan-07     2007      10     2007-01-05
> 

> lapply(dataF[1:5, 1:5], function(x){ifelse(is.na(dmy(x)), x, dmy(x))})
$ID_NO
[1] "1478" "5032" "3192" "3978" "6617"

$DTTM
[1] 1157328000 1161907200 1168214400 1169942400 1167955200

$DATE_YEAR
[1] 2006 2006 2007 2007 2007

$TERM
[1] 27 36 10 20 10

$ISSUE_DT
[1] 1158192000 1162425600 1168214400 1170201600 1167955200
4

1 回答 1

0

我想它ifelse会返回数字向量。文件说

ifelse返回具有相同形状的值test

所以这就是为什么(大概)POSIXct向量被强制为数字的原因。此解决方法可能会有所帮助:

lapply(df, function(x){
    y <- dmy(x)
    if (all(is.na(y))) return(x)
    y
  })
于 2014-04-16T13:08:38.950 回答