如何将因子数据字段转换为时间字段

时间:2017-11-22 10:01:04

标签: r time casting posixct

我有一个R数据框,如bellow,

Time      value
00:00:00      1
00:00:03      3
00:00:06      2
00:00:09      1

当我检查数据框中的字段类时,我发现了,

    Time     value
"factor" "integer"  

然后我尝试使用波纹管代码将Time的数据类型转换为时间。

df["Time"] <- as.POSIXct(df["Time"],format="%H:%M:%S")

当我执行上面的代码时,会产生错误。

  

as.POSIXct.default(df [“Time”],格式=“%H:%M:%S”)出错:     不知道如何将'df [“Time”]'转换为类“POSIXct”

我的问题是,为什么会出现这个错误,以及我如何能够解决这个错误?

2 个答案:

答案 0 :(得分:1)

失败的原因是因为您调用列Time的方式。最简单的方法是使用$,即

as.POSIXct(df$Time,format="%H:%M:%S")

但是,如果要使用括号,则需要添加其中的2个,以便将其作为向量而不是数据框列提取,即

as.POSIXct(df[["Time"]],format="%H:%M:%S")

以上两个结果都是,

[1] "2017-11-23 00:00:00 +03" "2017-11-23 00:00:03 +03" "2017-11-23 00:00:06 +03" "2017-11-23 00:00:09 +03"

答案 1 :(得分:0)

这是否有效:

df["Time"] <- as.POSIXct(as.character(df["Time"]),format="%H:%M:%S")