我正在使用 R 中标记为“mydata”的数据框。标记为“ts”的第一列包含 unix 时间戳字段。我想将这些字段转换为一周中的几天。
我试过使用 strptime 和 POSIXct 函数,但我不确定如何正确执行它们:
> strptime(ts, "%w")
--返回此错误:
"Error in as.character(x) : cannot coerce type 'closure' to vector of type 'character'"
我也只是尝试使用 POSIXct 将其转换为人类可读的格式:
as.Date(as.POSIXct(ts, origin="1970-01-01"))
--返回此错误:
"Error in as.POSIXct.default(ts, origin = "1970-01-01") : do not know how to convert 'ts' to class “POSIXct”"
更新:这是最终为我工作的内容:
> mydata$ts <- as.Date(mydata$ts)
然后
> mydata$ts <- strftime( mydata$ts , "%w" )
最佳答案
当 strftime
直接给你这个并且 POSIXlt
调用 strftime
时,不需要一直到 as.POSIXlt
。
wday <- function(x) as.POSIXlt(x)$wday
wday(Sys.time()) # Today is Sunday
## [1] 0
还有
weekdays
函数,如果你想要字符而不是数字输出:weekdays(Sys.time())
## [1] "Sunday"
关于r - 在 R 中将 unix 时间戳列转换为星期几,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17007023/