POSIXlt出错

时间:2016-12-29 18:55:45

标签: r

我的数据中的日期是YYYY-dd-mm格式。2015-01-07,2015-01-08是一些示例日期。我想从此日期提取周数。我使用了以下代码

week_number <- as.POSIXlt(data_tmp2$my_date)
data_tmp2$week_number=strftime(data_tmp2,format="%W")

运行第二行后,我收到以下错误

Error in as.POSIXlt.default(x, tz = tz) : 
do not know how to convert 'x' to class “POSIXlt”

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

我们可以使用Date转换为as.Date课程并使用format提取一周

format(as.Date("2015-01-07", format = "%Y-%d-%m"), "%W")
#[1] "26"

OP的帖子中的代码如果应用于相关列而不是data.frame

,应该可以正常运行
strftime(as.POSIXlt("2015-01-07", format = "%Y-%d-%m"), "%W")
#[1] "26"

strftime(as.POSIXlt(data_tmp2$my_date, format = "%Y-%d-%m"), format="%W")

注意:目前尚不清楚format"%Y-%d-%m"还是通常Date类格式,即%Y-%m-%d,因为它可能是OP&#39;中的拼写错误。的帖子。

答案 1 :(得分:1)

library(lubridate)
week(as.Date("2015-01-07", format = "%Y-%m-%d"))