在我的分析中,我必须从Date对象中提取一周的日期和每两周的日期数。我希望结果如下所示
Date weekday fortnightly
2010-05-01 Saturday 1
2010-05-02 Sunday 2
.
.
2010-05-14 Friday 14
2010-05-15 Saturday 1
2010-05-16 Sunday 2
.
.
2010-05-28 Friday 14
2010-05-29 Saturday 1
2010-05-30 Sunday 2
2010-05-31 Monday 3
2010-06-1 Tuesday 4
2010-06-2 Wednesday 5
我将工作日提取如下
df$weekday <- weekdays(as.Date(df$Date))
但是,我不知道我可以使用哪个功能来提取每两周的日期数。
任何建议都将不胜感激。
答案 0 :(得分:2)
我们可以尝试
(seq_along(v1)-1)%%14 + 1L
#[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11
#[26] 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8
#[51] 9 10 11 12 13 14 1 2 3 4
v1 <- seq(as.Date('2010-05-01'), length.out=60, by = '1 day')
答案 1 :(得分:2)
这是你想要的吗?
将@ akrun的数据作为参考
v1 <- seq(as.Date('2010-05-01'), length.out=60, by = '1 day')
c(rep(seq(1, 14, 1), floor(length(v1)/14)), 1:(length(v1)%%14))
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4
# [33] 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4
重复1到14的数字序列length(v1)/14
次,然后追加剩余的数字。
因此,如果在您的情况下它是一个数据框,那么您可以尝试,
c(rep(seq(1, 14, 1), floor(nrow(df)/14)), 1:(nrow(df)%%14))
会再次生成相同的序列。