我有一个包含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格式。
我认为这会更简单。有什么想法吗?
谢谢。
答案 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