我的数据中的日期是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”
你能帮我解决这个问题吗?
答案 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"))