R 应用函数不';不能生成日期格式

R 应用函数不';不能生成日期格式,r,date,datetime,apply,R,Date,Datetime,Apply,在对日期列应用apply函数时,我遇到了一个问题。日期显示不正确。需要帮忙吗 > head(dataF) [1] "4-Sep-06" "27-Oct-06" "8-Jan-07" "28-Jan-07" "5-Jan-07" "28-Jan-07" > res <- apply(dataF, 2, dmy) > head(res) DateM [1,] 1157328000 [2,] 1161907200 [3,] 11682

在对日期列应用apply函数时,我遇到了一个问题。日期显示不正确。需要帮忙吗

> head(dataF)
[1] "4-Sep-06"  "27-Oct-06" "8-Jan-07"  "28-Jan-07" "5-Jan-07"  "28-Jan-07"
> res <- apply(dataF, 2, dmy)
> head(res)
          DateM
[1,]    1157328000
[2,]    1161907200
[3,]    1168214400
[4,]    1169942400
[5,]    1167955200
[6,]    1169942400
>头(dataF)
[1] “2006年9月4日”“2006年10月27日”“2007年1月8日”“2007年1月28日”“2007年1月5日”“2007年1月28日”
>秘书长(秘书)
达特姆
[1,]    1157328000
[2,]    1161907200
[3,]    1168214400
[4,]    1169942400
[5,]    1167955200
[6,]    1169942400

无论您想对输出执行什么操作,当函数
dmy
已经处理向量时,您都不需要使用
apply
或其同类函数。只用

res <- dmy(dataF)
下面是一个更详细的示例,其中我们仅在两列中替换日期:

dataF <- data.frame(x = c("4-Sep-06", "27-Oct-06", "8-Jan-07", 
                          "28-Jan-07", "5-Jan-07", "28-Jan-07"),
                    y = c("4-Jan-06", "27-Jan-06", "8-Feb-07", 
                          "28-Feb-07", "5-Mar-07", "28-Mar-07"),
                    z = c(1:6))
dataF
#           x         y z
# 1  4-Sep-06  4-Jan-06 1
# 2 27-Oct-06 27-Jan-06 2
# 3  8-Jan-07  8-Feb-07 3
# 4 28-Jan-07 28-Feb-07 4
# 5  5-Jan-07  5-Mar-07 5
# 6 28-Jan-07 28-Mar-07 6

library(lubridate)
## The third column is not a date
## Just replace the first two columns directly
dataF[1:2] <- lapply(dataF[1:2], dmy)
dataF
#            x          y z
# 1 2006-09-04 2006-01-04 1
# 2 2006-10-27 2006-01-27 2
# 3 2007-01-08 2007-02-08 3
# 4 2007-01-28 2007-02-28 4
# 5 2007-01-05 2007-03-05 5
# 6 2007-01-28 2007-03-28 6

dataF如果希望格式看起来像日期对象,请将其更改为日期对象。这样,它实际上是一个日期对象

> dataF <- c("4-Sep-06", "27-Oct-06", "8-Jan-07", 
             "28-Jan-07", "5-Jan-07",  "28-Jan-07")
> as.Date(dataF, "%d-%b-%y")
[1] "2006-09-04" "2006-10-27" "2007-01-08" "2007-01-28" "2007-01-05" "2007-01-28"
>dataF as.Date(dataF,“%d-%b-%y”)
[1] "2006-09-04" "2006-10-27" "2007-01-08" "2007-01-28" "2007-01-05" "2007-01-28"

您希望格式是什么样的?首先为什么需要在此处使用
apply
?我还有其他列(我将绑定到现有数据框)要在其上应用此函数。这就是我选择“申请”的原因。我希望格式看起来像一个日期对象,那么你应该使用
lappy
而不是
apply
。我正要用一个示例发布一个答案,但只是将其编辑到你的答案中。希望你不介意:-)@AnandaMahto,这是我第一次看到如此繁重的编辑,但我想说你改进了它,所以谢谢你。:)这与一个演示示例的答案几乎相同,所以我不认为它太重…@AnandaMahto,别担心。我的意思是在文本数量方面,但我对结果非常满意。
> dataF <- c("4-Sep-06", "27-Oct-06", "8-Jan-07", 
             "28-Jan-07", "5-Jan-07",  "28-Jan-07")
> as.Date(dataF, "%d-%b-%y")
[1] "2006-09-04" "2006-10-27" "2007-01-08" "2007-01-28" "2007-01-05" "2007-01-28"