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