1
我需要通過幾個條件對一個表進行子集分析。如何按日期和順序對錶進行子集劃分?
df <- data.frame(id=c("A","A","B","B","B","C"), seq=c(1,2,1,2,3,1), date=as.Date(c("2005-10-01", "2008-12-01","2001-03-05","2004-05-09","2008-10-15","2010-02-27")), value=c(20,12,80,55,77,57))
id | seq | date | value
--------------------------------
A | 1 | 2005-10-01 | 20
A | 2 | 2008-12-01 | 12
B | 1 | 2001-03-05 | 80
B | 2 | 2004-05-09 | 55
B | 3 | 2008-10-15 | 77
C | 1 | 2010-02-27 | 57
我需要一個方法來爲每個id返回一個值。具體而言,最高序列與日期的值小於或等於給定日期。鑑於說2004-07-01
,它應該返回:
id | value
--------------
A | 20
B | 55
C | 57
(請注意,在特殊情況下日期小於第一次約會,它應該返回指定seq = 1,不是沒有)
這是可能的?一氣呵成?
+1不錯的單行! – Ben
好功夫!但它並沒有給出正確的答案。 – jenswirf
我注意到結果是不同的,但它是因爲ID爲B的值55在所需的起點之前,還是我錯過了某些東西? – johannes