将数字转换为日期

贝塔

我的数据采用这种格式

ID     Date       Order
1   12/12/2015      1
1   12/13/2015      2
1   12/14/2015      3
1   12/15/2015      4
2   12/12/2015      1
2   12/13/2015      2
2   12/14/2015      3
2   12/15/2015      4

现在,我正在使用tidyr将数据转换为宽格式。因此,新数据看起来像这样。

ID   Date_1     Date_2       Date_3    Date_4
1  12/12/2015 12/13/2015  12/14/2015 12/15/2015
2  12/12/2015 12/13/2015  12/14/2015 12/15/2015

我遇到的问题是转换时,Date_1,Date_4变成了数字。当我尝试使用以下代码将它们转换为字符时,出现以下错误。

df[, 2:5] <- lapply(df[,2:5], as.Date)

错误:

Error in as.Date.numeric(x) : 'origin' must be supplied

我的问题是如何将数字数据转换为日期格式。

谢谢!

阿克伦

我们需要使用正确format的将其转换为Date类。

df[2:5] <- lapply(df[2:5], as.Date, format = "%m/%d/%Y")
df
#  ID     Date_1     Date_2     Date_3     Date_4
#1  1 2015-12-12 2015-12-13 2015-12-14 2015-12-15
#2  2 2015-12-12 2015-12-13 2015-12-14 2015-12-15

如果“日期”列已采用format格式"%Y-%m-%d",则我们不必指定格式。


尚不清楚在重塑时我们如何获得数字“日期”列

library(tidyr)
OrigDf %>% 
     mutate(Order = paste0("Date", Order)) %>% 
     spread(Order, Date)
#  ID      Date1      Date2      Date3      Date4
#1  1 12/12/2015 12/13/2015 12/14/2015 12/15/2015
#2  2 12/12/2015 12/13/2015 12/14/2015 12/15/2015

注意:即使是一factor列,以上输出也保持不变。

数据

df <- structure(list(ID = 1:2, Date_1 = c("12/12/2015", "12/12/2015"
), Date_2 = c("12/13/2015", "12/13/2015"), Date_3 = c("12/14/2015", 
"12/14/2015"), Date_4 = c("12/15/2015", "12/15/2015")), .Names = c("ID", 
"Date_1", "Date_2", "Date_3", "Date_4"), class = "data.frame",
 row.names = c(NA, -2L))


Origdf <- structure(list(ID = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), 
 Date = c("12/12/2015", 
 "12/13/2015", "12/14/2015", "12/15/2015", "12/12/2015", "12/13/2015", 
 "12/14/2015", "12/15/2015"), Order = c(1L, 2L, 3L, 4L, 1L, 2L, 
 3L, 4L)), .Names = c("ID", "Date", "Order"), class = "data.frame",
 row.names = c(NA, -8L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何防止R将日期向量强制转换为数字?

来自分类Dev

Oracle将日期转换为数字

来自分类Dev

PostgreSQL将数字转换为日期和格式

来自分类Dev

禁用mapply自动将日期转换为数字

来自分类Dev

如何将数字转换为正常日期?

来自分类Dev

Excel VBA-停止将日期转换为数字

来自分类Dev

将SAS数字日期转换为日期时间格式

来自分类Dev

将数字sas日期转换为熊猫中的datetime

来自分类Dev

阻止地图将日期转换为数字

来自分类Dev

如何将mktime()转换为数字日期?

来自分类Dev

R将数字转换为日期的问题

来自分类Dev

Powershell将数字转换为日期并保存

来自分类Dev

将数字转换为R中的日期

来自分类Dev

readxl()将日期转换为数字

来自分类Dev

使用javascript将数字转换为日期

来自分类Dev

将数字日期转换为Datetime对象

来自分类Dev

如何防止R将日期向量强制转换为数字?

来自分类Dev

将奇数日期格式转换为数字

来自分类Dev

禁用mapply自动将日期转换为数字

来自分类Dev

将数字日期转换为工作日

来自分类Dev

将数字转换为日期

来自分类Dev

将数字转换为日期问题

来自分类Dev

将范围内的数字转换为日期格式| Javascript |

来自分类Dev

使用Java将日期数字转换为单词

来自分类Dev

阻止地图将日期转换为数字

来自分类Dev

将数字日期转换为文本

来自分类Dev

将字符串日期转换为数字日期

来自分类Dev

如何使用“-”将日期作为数字转换为日期

来自分类Dev

将整数字段日期时间转换为日期时间