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

pas*_*pas 3 datetime timestamp r unix-timestamp dataframe

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

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

> strptime(ts, "%w")
Run Code Online (Sandbox Code Playgroud)

- 返回此错误:

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

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

as.Date(as.POSIXct(ts, origin="1970-01-01"))
Run Code Online (Sandbox Code Playgroud)

- 返回此错误:

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

更新:以下是最终为我工作的内容:

> mydata$ts <- as.Date(mydata$ts)
Run Code Online (Sandbox Code Playgroud)

然后

> mydata$ts <- strftime( mydata$ts , "%w" )
Run Code Online (Sandbox Code Playgroud)

Mat*_*erg 8

没有必要去一路strftimePOSIXlt给你这直接,strftime电话as.POSIXlt.

wday <- function(x) as.POSIXlt(x)$wday

wday(Sys.time()) # Today is Sunday
## [1] 0
Run Code Online (Sandbox Code Playgroud)

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

weekdays(Sys.time())
## [1] "Sunday"
Run Code Online (Sandbox Code Playgroud)