R中迄今为止的整数数据帧

时间:2015-04-28 19:26:50

标签: r

我有一个包含10个日期的数据框,我将其作为整数读入R中。这是数据框:

19820509
19550503
20080505
19590505
19940517
19690504
20050420
20060503
19840427
19550513

我们称之为df。

我在这里尝试了几行不同的代码,只需将每个值更改为R中的日期格式,如下所示:"1982-05-09"

df <-  as.Date(df, "%Y%m%d")

不起作用,

也不起作用
 df <- as.POSIXlt(df, format = "%Y/%m/%d")

df <- as.POSIXct(df), format = "%Y/%m/%d", origin = "19820509")

我一直收到错误说&#34;不知道如何转换&#39; df&#39;上课&#34;约会&#34;或任何一种POSIX格式。

我认为这会更简单。有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:8)

您必须引用特定列,而不仅仅是引用数据框。如果包含整数日期的变量位于数据框df中并且名为x,则可以执行以下操作:

df <- transform(df, x = as.Date(as.character(x), "%Y%m%d"))

#             x
#  1 1982-05-09
#  2 1955-05-03
#  3 2008-05-05
#  4 1959-05-05
#  5 1994-05-17
#  6 1969-05-04
#  7 2005-04-20
#  8 2006-05-03
#  9 1984-04-27
# 10 1955-05-13

这会将整数转换为字符串,然后将字符串解释为日期。

如果多列包含此格式的日期,可以一次性转换它们,但您必须略有不同:

df <- data.frame(lapply(df, function(x) as.Date(as.character(x), "%Y%m%d")))

甚至更好,正如评论中提到的docendo discimus:

df[] <- lapply(df, function(x) as.Date(as.character(x), "%Y%m%d"))

答案 1 :(得分:0)

v = c(数据$ DATE)

日期&lt; - as.Date(粘贴(v),格式(“%Y%m%d”))

日期

data $ DATE是以整数格式携带日期的列,如20000131,20000201