【发布时间】:2020-08-12 20:57:51
【问题描述】:
使用format()我可以提取年月日如下:
date day month year
<date> <fctr> <fctr> <fctr>
2005-01-01 01 01 2005
2005-01-01 01 01 2005
2005-01-02 02 01 2005
2005-01-02 02 01 2005
2005-01-03 03 01 2005
2005-01-03 03 01 2005
...
2010-12-31 31 12 2010
2010-12-31 31 12 2010
2010-12-31 31 12 2010
2010-12-31 31 12 2010
2010-12-31 31 12 2010
2010-12-31 31 12 2010
但是,我也想计算从开始到结束有多少天、几周、几个月。也就是说,我想按如下方式创建日、周、月数字:
date day month year day_num week_num month_num
<date> <fctr> <fctr> <fctr> <double> <double> <double>
2005-01-01 01 01 2005 1 1 1
2005-01-01 01 01 2005 1 1 1
2005-01-02 02 01 2005 2 1 1
2005-01-02 02 01 2005 2 1 1
2005-01-03 03 01 2005 3 1 1
2005-01-03 03 01 2005 3 1 1
...
2005-02-28 28 02 2005 59 9 2
2005-03-01 01 03 2005 60 9 3
2005-03-02 02 03 2005 61 9 3
...
我怎样才能做到不误算?
【问题讨论】:
-
不是month_num,只是
as.numeric(as.character(month)),也许format(date, '%W')代表week_num,match(date, unique(date))代表`day_num -
没有。在月份列中,“01”代表“一月”,同样,“02”代表“二月”,依此类推。但是通过month_num,我想查看我的数据从头到尾有多少个月,并将此信息添加为单独的列
-
好的,可能是您的示例不清楚,因为 'month' 和 'month_num' 显示除了类型之外的相同输出
-
day_num 和 week_num 那就更清楚了。这三个变量的计算思路其实是一样的