This question already has answers here:
Convert integer to class Date
(3个答案)
5天前关闭。
我有一个带有10个日期的数据框,我将其读入R作为整数。这是数据帧:
我们称它为df。
我在这里尝试了几行不同的代码行,以将每个值简单地更改为R中的日期格式,如下所示:
不起作用,也不起作用
要么
我不断收到错误消息,说“不知道如何将'df'转换为类“ date”或POSIX格式中的任何一种。
我认为这会更简单。有任何想法吗?
谢谢。
这会将整数转换为字符串,然后将字符串解释为日期。
如果包含此格式的日期的多列,则可以一次转换,但必须做些微的不同:
甚至更好,正如docendo discimus在评论中提到的那样:
(3个答案)
5天前关闭。
我有一个带有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")
我不断收到错误消息,说“不知道如何将'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
这会将整数转换为字符串,然后将字符串解释为日期。
如果包含此格式的日期的多列,则可以一次转换,但必须做些微的不同:
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"))
关于r - 迄今R中的整数数据帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29928195/