首页 文章

将unix时间戳列转换为R中的星期几

提问于
浏览
3

我正在使用 R 中标记为"mydata"的数据框 . 标记为"ts"的第一列包含unix时间戳字段 . 我想将这些字段转换为一周中的几天 .

我尝试过使用strptime和POSIXct函数,但我不确定如何正确执行它们:

> strptime(ts, "%w")
  • 返回此错误:

“as.character(x)中的错误:无法强制将'闭合'类型强制转换为'character'类型的向量

我也尝试过用POSIXct将其转换为人类可读的格式:

as.Date(as.POSIXct(ts, origin="1970-01-01"))
  • 返回此错误:

“as.POSIXct.default(ts,origin =”1970-01-01“)中的错误:不知道如何将'ts'转换为类”POSIXct“”

更新:这是最终为我工作的:

> mydata$ts <- as.Date(mydata$ts)

然后

> mydata$ts <- strftime( mydata$ts , "%w" )

1 回答

  • 8

    POSIXlt 直接给你这个时,无需一直到 strftimestrftime 调用 as.POSIXlt .

    wday <- function(x) as.POSIXlt(x)$wday
    
    wday(Sys.time()) # Today is Sunday
    ## [1] 0
    

    如果你想要字符而不是数字输出,还有 weekdays 函数:

    weekdays(Sys.time())
    ## [1] "Sunday"
    

相关问题