我有时间序列数据,我想从连续天变量(第1 - 7天=第1周,以此类推)创建一个周变量。
这是我目前所做的:
mydf %>%
mutate(week = as.numeric(case_when(
lfday >= 1+0*7 & lfday <= 7+0*7 ~ '1',
lfday >= 1+1*7 & lfday <= 7+1*7 ~ '2',
lfday >= 1+2*7 & lfday <= 7+2*7 ~ '3',
lfday >= 1+3*7 & lfday <= 7+3*7 ~ '4',
lfday >= 1+4*7 & lfday <= 7+4*7 ~ '5',
lfday >= 1+5*7 & lfday <= 7+5*7 ~ '6',
lfday >= 1+6*7 & lfday <= 7+6*7 ~ '7',
lfday >= 1+7*7 & lfday <= 7+7*7 ~ '8',
lfday >= 1+8*7 & lfday <= 7+8*7 ~ '9',
lfday >= 1+9*7 & lfday <= 7+9*7 ~ '10')))
这段代码可以工作,但是我想通过创建一个for循环/函数来避免复制粘贴。然而,我完全是新手,我可能需要一些帮助。我的想法是循环通过两个向量(0 - 9和1 - 10),但老实说我不知道怎么做。提前感谢!
1条答案
按热度按时间yyyllmsg1#
我觉得比这简单多了: