我有一个关于数据操作的简单问题。考虑下面的数据集:R中的因子和时间变量的数据集操作
n = c("john","jane","tim","john","jimmy","tim","jane","john","jimmy")
s = c("2012-03-21","2013-02-12","2014-01-01","2012-05-21","2010-12-17","2012-01-21","2013-03-12","2013-08-21","2010-09-17")
df = data.frame(n,s)
n s
1 john 2012-03-21
2 jane 2013-02-12
3 tim 2014-01-01
4 john 2012-05-21
5 jimmy 2010-12-17
6 tim 2012-01-21
7 jane 2013-03-12
8 john 2013-08-21
9 jimmy 2010-09-17
我想创造一个对每个人,我已经计算的月数从最早的时间点数据的第三列。这将显示如下:
n s output
1 john 2012-03-21 0
2 jane 2013-02-12 0
3 tim 2014-01-01 24
4 john 2012-05-21 2
5 jimmy 2010-12-17 3
6 tim 2012-01-21 0
7 jane 2013-03-12 1
8 john 2013-08-21 17
9 jimmy 2010-09-17 0
正如你所看到的,与约翰例如,最早的时间点是2012-03-21,所以计算出的月数从2012-03-21至2012- 05-21,然后到2013-08-21,并将输出放在适当的行中。
我认为dplyr或应用函数会派上用场,但我发现我正在为不应该太难的东西制作相当多的代码。
谢谢你的帮助。
为什么约翰的最后一点是73.5?应该不是'2013-08-21 - 2012-03-21'是17? – GGamba
对不起计算这些手工并改变了一些日期,使其更容易看到,但一定忘了改变输出。谢谢。 – Tim