转换为日期时间导致 NA
Converting to datetime resulting in NA
我有一个具有以下属性和字段的数据框:
print(sapply(df1, typeof))
SurveyUserStart
"integer"
print(df1)
SurveyUserStart
1 2016-10-17 08:55:13
2 2016-04-24 14:31:12
3 2016-09-01 15:17:54
4 2016-07-20 11:26:56
我正在尝试将此列 SurveyUserStart
转换为 datetime
格式。我尝试了以下各种方法,但结果总是 NA
df1$SurveyUserStart <- as.POSIXlt(as.character(df1$SurveyUserStart), format="%d/%m/%Y %H:%M")
df1$SurveyUserStart <- as.character(df1$SurveyUserStart, format="%m/%d/%Y %H:%M:%S %p")
如评论中所述,将格式信息提供给函数的顺序很重要。如果你的日期 2016-10-17 08:55:13
这意味着你有年月日 hour:minute:second。如果你想转换为一个日期,你必须准确地提供这个信息哟你的情况下的功能:
as.POSIXct(x = as.character(df3$SurveyUserStart), format = "%Y-%m-%d %H:%M:%S")
请注意,如果您使用 POSIXct 函数,您还必须在不同格式之间选择正确的分隔符(在您的例子中为 -)。
如果你使用包 lubridate
就不再需要了,但是你仍然必须在函数名中给出日期对象的正确顺序(y=year,m=month,d=day,...)导致以下功能:
ymd_hms(as.character(df3$SurveyUserStart))
我有一个具有以下属性和字段的数据框:
print(sapply(df1, typeof))
SurveyUserStart
"integer"
print(df1)
SurveyUserStart
1 2016-10-17 08:55:13
2 2016-04-24 14:31:12
3 2016-09-01 15:17:54
4 2016-07-20 11:26:56
我正在尝试将此列 SurveyUserStart
转换为 datetime
格式。我尝试了以下各种方法,但结果总是 NA
df1$SurveyUserStart <- as.POSIXlt(as.character(df1$SurveyUserStart), format="%d/%m/%Y %H:%M")
df1$SurveyUserStart <- as.character(df1$SurveyUserStart, format="%m/%d/%Y %H:%M:%S %p")
如评论中所述,将格式信息提供给函数的顺序很重要。如果你的日期 2016-10-17 08:55:13
这意味着你有年月日 hour:minute:second。如果你想转换为一个日期,你必须准确地提供这个信息哟你的情况下的功能:
as.POSIXct(x = as.character(df3$SurveyUserStart), format = "%Y-%m-%d %H:%M:%S")
请注意,如果您使用 POSIXct 函数,您还必须在不同格式之间选择正确的分隔符(在您的例子中为 -)。
如果你使用包 lubridate
就不再需要了,但是你仍然必须在函数名中给出日期对象的正确顺序(y=year,m=month,d=day,...)导致以下功能:
ymd_hms(as.character(df3$SurveyUserStart))