我遇到了一个我不明白的问题,我在这个网站上找不到这个问题的答案(我一直在讨论如何将日期转换为数字,反之亦然,但这正是我的意思不想知道).
问题是当您将它们分配给矩阵或数据框时,R将格式化为日期的值(例如"20-09-1992")转换为数值.例如,我们有"20-09-1992"的日期格式,我们已经使用了这个class()
.
as.Date("20-09-1992", format = "%d-%m-%Y") class(as.Date("20-09-1992", format = "%d-%m-%Y"))
我们现在将此值分配给矩阵,富有想象力地称为矩阵:
Matrix <- matrix(NA,1,1) Matrix[1,1] <- as.Date("20-09-1992", format = "%d-%m-%Y") Matrix[1,1] class(Matrix[1,1])
突然之前格式化为"20-09-1992"的日期已成为值为8298的数字.我不想要值为8298的数字,我想要一个日期格式为"20-09-1992"的日期.
所以我想知道这是否只是R的工作原理,我们不允许为矩阵和数据帧分配日期(不知何故,我已经设法在其他矩阵/数据帧中设置日期,但它打败了我为什么其他时间不同)?是否有一种特殊的方法可以将数据框和矩阵分配给我错过的数据框和矩阵,并且无法从先前(某种程度上成功)尝试将日期分配给数据框/矩阵中推断出来?
我不认为你可以在矩阵中存储日期.使用数据框或数据表.如果必须在矩阵中存储日期,则可以使用列表矩阵.
Matrix <- matrix(NA,1,1) Matrix[1,1] <- as.list(as.Date("20-09-1992", format = "%d-%m-%Y"),1) Matrix [[1]] [1] "1992-09-20"
编辑:我也只是重新读了你有这个数据框架的问题.我不知道为什么.
mydate<-as.Date("20-09-1992", format = "%d-%m-%Y") mydf<-data.frame(mydate) mydf mydate 1 1992-09-20
编辑:这对我来说是R和约会的学习经历.显然,您提供的日期被转换为原始日期.Origin定义为1970年1月1日.要在某些时候将其转换回日期格式
Matrix [,1] [1,] 8298 as.Date(Matrix, origin ="1970-01-01") [1] "1992-09-20"