我正在使用 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" )
答案 0 :(得分:8)
当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"
函数:
{{1}}