我有一个包含 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")
or
df <- as.POSIXct(df), format = "%Y/%m/%d", origin = "19820509")
我不断收到错误消息“不知道如何将 'df' 转换为类“date”或任何 POSIX 格式。
我认为这会更简单。有任何想法吗?
谢谢。
您必须引用特定的列,而不仅仅是引用数据框。如果包含整数日期的变量位于数据框中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
这会将整数转换为字符串,然后将字符串解释为日期。
如果您的多个列包含这种格式的日期,您can一下子转换它们,但你必须稍微不同:
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"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)