【问题标题】:How to convert factor data field to time field如何将因子数据字段转换为时间字段
【发布时间】:2018-05-06 00:19:31
【问题描述】:

我有一个像下面这样的 R 数据框,

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"], format = "%H:%M:%S") 中的错误: 不知道如何将 'df["Time"]' 转换为 "POSIXct" 类

我的问题是,为什么会发生这个错误,我该如何克服这个错误?

【问题讨论】:

标签: r time casting posixct


【解决方案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"

【讨论】:

    【解决方案2】:

    这行得通吗:

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

    【讨论】:

      猜你喜欢
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      相关资源
      最近更新 更多