我有一個關於數據操作的簡單問題。考慮下面的數據集: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