考虑一个形式为数据框的数据结构
idnum start end
1993.1 17 1993-01-01 1993-12-31
1993.2 17 1993-01-01 1993-12-31
1993.3 17 1993-01-01 1993-12-31
具有类型为Date
的start
和end
$ idnum : int 17 17 17 17 27 27
$ start : Date, format: "1993-01-01" "1993-01-01" "1993-01-01" "1993-01-01" ...
$ end : Date, format: "1993-12-31" "1993-12-31" "1993-12-31" "1993-12-31" ...
我想创建一个新的数据框,每行都有每个月的观察值,包括start
和end
之间的每个月(包括边界):
期望输出
idnum month
17 1993-01-01
17 1993-02-01
17 1993-03-01
...
17 1993-11-01
17 1993-12-01
我不确定month
应该采用什么格式,我最终想要按idnum
和month
分组进行数据集其他部分的回归。
到目前为止,对于每一行数据,seq(from=test[1,'start'], to=test[1, 'end'], by='1 month')
可以给出正确的序列 - 但是,一旦我尝试将其应用于整个数据框架,它就无法工作:
> foo <- apply(test, 1, function(x) seq(x['start'], to=x['end'], by='1 month'))
Error in to - from : non-numeric argument to binary operator
R
的初学者,我应该如何判断答案?是否有一种像Python中的%timeit
一样的方法来检查它们的效率? - FooBar