1
我試圖創建一個我的問題的小例子。第一列是不同日期,第二列是在這些特定日期發生的降級。我需要在每次降級時過濾3行:降級前一天,降級發生的那一天以及降級後的一天。按條件選擇行幷包括重複項排序
df <- data.frame(date = Sys.Date() - 19:0, dgrd = NA)
df$dgrd[c(4, 10, 11, 16)] <- "X" #small dataframe inclduing problematic downgrades
down <- which(!is.na(df$dgrd)) #select all days where downgrade occured
keep <- df[c(down-1, down, down+1), ] #select the specific days for each downgrade
print(keep)
date dgrd
2017-09-26 <NA>
2017-10-02 <NA>
2017-10-03 X
2017-10-08 <NA>
2017-09-27 X
2017-10-03 X
2017-10-04 X
2017-10-09 X
2017-09-28 <NA>
2017-10-04 X
2017-10-05 <NA>
2017-10-10 <NA>
現在我需要對這個輸出進行排序,我有3天屬於一個特定降級的輸出。我無法按日期對其進行排序,因爲如果連續兩天降級,訂單就不正確。
那麼,到底我的表應該如下,讓每一個3行屬於一個降級:
date dgrd
2017-09-26 <NA>
2017-09-27 X
2017-09-28 <NA>
2017-10-02 <NA>
2017-10-03 X
2017-10-04 X
2017-10-03 X
2017-10-04 X
2017-10-05 <NA>
2017-10-08 <NA>
2017-10-09 X
2017-10-10 <NA>
在連續幾天下調的情況下,還有許多事情需要重複的行我最終輸出,因此unique()
功能不能使用。
我該如何解決這個問題?