使用 R 中的 POSIXct 函数将日期时间从 chr 转换为日期时间格式

问题描述 投票:0回答:1

我正在学习用 R 编写代码,目前正在进行 Bellabeat Google 数据分析 Capstone 项目。为此,我需要将具有格式为字符的日期时间值(即 4/12/2016 12:00:00 AM)的列转换为日期时间格式。我一直在尝试使用 as.POSIXct 函数,但每次这样做时,整个列值都会更改为 NA。我查了一下问题,发现很可能是因为我在 POSIXct 函数的格式字符串中有一个拼写错误。但是,我已经验证我使用的格式代码以及顺序和之间的空格都是正确的。然而,该函数不断将值更改为 NA。我需要帮助找出我编写函数的方式有什么问题,请!

这是我正在使用的数据的子集:

dput(head(hourly_calories$ActivityHour, 20))

c("4/12/2016 12:00:00 AM", "4/12/2016 1:00:00 AM", "4/12/2016 2:00:00 AM", 
"4/12/2016 3:00:00 AM", "4/12/2016 4:00:00 AM", "4/12/2016 5:00:00 AM", 
"4/12/2016 6:00:00 AM", "4/12/2016 7:00:00 AM", "4/12/2016 8:00:00 AM", 
"4/12/2016 9:00:00 AM", "4/12/2016 10:00:00 AM", "4/12/2016 11:00:00 AM", 
"4/12/2016 12:00:00 PM", "4/12/2016 1:00:00 PM", "4/12/2016 2:00:00 PM", 
"4/12/2016 3:00:00 PM", "4/12/2016 4:00:00 PM", "4/12/2016 5:00:00 PM", 
"4/12/2016 6:00:00 PM", "4/12/2016 7:00:00 PM")

Original table with datetime values in chr format

这是我写的代码:

hourly_calories$ActivityHour <- as.POSIXct(hourly_calories$ActivityHour, format="%m/%d/%Y %I:%M:%S %p", tz="UTC")

运行此代码后,我得到以下结果:

dput(head(hourly_calories$ActivityHour, 20)

structure(c(NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
NA_real_), class = c("POSIXct", "POSIXt"), tzone = "UTC")

Table with NA values after running the code above

如有任何反馈,我们将不胜感激!

r datetime posixct
1个回答
0
投票

convert_to_datetime
包中的
janitor
功能怎么样?

hourly_calories$datetime<- convert_to_datetime(hourly_calories$ActivityHour, character_fun = lubridate::dmy_hms)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.