r - 在 R 中将 unix 时间戳列转换为星期几

标签 r datetime dataframe timestamp unix-timestamp

我正在使用 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/

相关文章:

使用 Photon 的 R Shiny 独立应用程序

r - 使用 data.table 中的 fread() 会导致 R session 中止

javascript - 使用 javascript 和表排序器动态获取时无法对日期列进行排序

javascript - 在两个日期之间搜索 JSON

python - Pandas 比较下一行

r - 替换 tibble 列表中值的更简洁方法

r - 是否有可能以 TeX 形式输出符号表达式

r - R 中的非规范化矩阵

python - 如何计算 Pandas 中每月分成几天的两个日期之间的天数

r - 根据列值更改行中的值并替换指定的列范围