R-将浮点数转换为日期

R-将浮点数转换为日期,r,datetime,R,Datetime,想知道你是否能给我一些关于我在R版本4.0.2中的一个悬而未决的问题的信息。我正在将数据从给定sharepoint中的excel文件移动到本地数据库。所面临的问题是,当使用readxl读取文件时,原始文件中作为日期(datetime)的列将作为浮点数返回。我需要把号码改回datetime 使用的图书馆: library(readxl) library(odbc) library(lubridate) 数字 44047.8149884259 44055.2403009259 44048.50

想知道你是否能给我一些关于我在R版本4.0.2中的一个悬而未决的问题的信息。我正在将数据从给定sharepoint中的excel文件移动到本地数据库。所面临的问题是,当使用readxl读取文件时,原始文件中作为日期(datetime)的列将作为浮点数返回。我需要把号码改回datetime

使用的图书馆:

library(readxl)
library(odbc)
library(lubridate)
数字

44047.8149884259

44055.2403009259

44048.504537037
预期结果

8/4/2020  7:33:35 PM

8/12/2020  5:46:02 AM

8/5/2020  12:06:32 PM
我试着用不同的格式使用
as_date
as.POSIXct
,但似乎没有答案

提前感谢您的宝贵意见。

我们可以使用

format(as.POSIXct(v1 * 60 *60 * 24, origin = '1899-12-30', tz = 'UTC'),
        '%m/%d/%Y %I:%M:%S %p')
#[1] "08/04/2020 07:33:34 pm" "08/12/2020 05:46:01 am" "08/05/2020 12:06:31 pm"
数据
v1我们可以使用

format(as.POSIXct(v1 * 60 *60 * 24, origin = '1899-12-30', tz = 'UTC'),
        '%m/%d/%Y %I:%M:%S %p')
#[1] "08/04/2020 07:33:34 pm" "08/12/2020 05:46:01 am" "08/05/2020 12:06:31 pm"
数据
v1顺便说一句,要将R中的这些数据用作值(不是任意字符串),您应该将它们转换为
POSIXt
格式,而不是该格式的字符串。在R中,它总是以单一格式表示日期和时间戳,因此如果您希望它在报告、表格或绘图中看起来像这样,请考虑在最后一刻更改格式。R的
Date
POSIXt
类是类似数字的,这意味着它们是连续变量。。。一旦你转换成字符串只是为了得到这种格式,你就失去了类似于“数字”的行为。
out@r2evans我认为这个解决方案不会给出预期的输出。请查一下电话号码
as.POSIXct(as.Date(v1,origin=“1899-12-30”),tz=“UTC”)
,我忘了它来源于Excel.btw,要在R中使用这些数据作为值(不是任意字符串),应该将它们转换为
POSIXt
格式,而不是那种格式的字符串。在R中,它总是以单一格式表示日期和时间戳,因此如果您希望它在报告、表格或绘图中看起来像这样,请考虑在最后一刻更改格式。R的
Date
POSIXt
类是类似数字的,这意味着它们是连续变量。。。一旦你转换成字符串只是为了得到这种格式,你就失去了类似于“数字”的行为。
out@r2evans我认为这个解决方案不会给出预期的输出。请查一下电话号码
as.POSIXct(as.Date(v1,origin=“1899-12-30”),tz=“UTC”)
,我忘了它是在Excel中获得的。