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

时间:2013-06-09 06:23:29

标签: r datetime dataframe timestamp unix-timestamp

我正在使用 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 个答案:

答案 0 :(得分:8)

strftime直接向您提供POSIXltstrftime来电as.POSIXlt时,无需一直前往wday <- function(x) as.POSIXlt(x)$wday wday(Sys.time()) # Today is Sunday ## [1] 0

weekdays

如果你想要字符而不是数字输出,还有weekdays(Sys.time()) ## [1] "Sunday" 函数:

{{1}}