I have the following extract of my dataset:
basisanddowngradessingledates[3017:3023, c("Dates", "Bank", "Rating agency") ]
Dates Bank Rating agency
3017 2011-10-04 Banca Monte dei Paschi di Siena SpA NA
3018 2011-10-05 Banca Monte dei Paschi di Siena SpA Moody's
3019 2011-10-06 Banca Monte dei Paschi di Siena SpA NA
3020 2011-10-07 Banca Monte dei Paschi di Siena SpA NA
3021 2011-10-10 Banca Monte dei Paschi di Siena SpA NA
3022 2011-10-11 Banca Monte dei Paschi di Siena SpA Fitch
3023 2011-10-12 Banca Monte dei Paschi di Siena SpA NA
My dataset has 45078 entries with 536 downgrades (column "Rating agency" is not "NA"). I need to have the row before a downgrade, the row where one occured and the row after the downgrade.
I did this with the following commands:
keepindex <- which(basisanddowngradessingledates[,8] != "NA")
interval1 <- basisanddowngradessingledates[c(keepindex-1,keepindex,
keepindex+1), ]
This gives me this output:
interval1[c(14:15, 358:359, 696:697),c("Dates", "Bank", "Rating agency")]
Dates Bank Rating agency
14 2011-10-04 Banca Monte dei Paschi di Siena SpA NA
15 2011-10-10 Banca Monte dei Paschi di Siena SpA NA
358 2011-10-05 Banca Monte dei Paschi di Siena SpA Moody's
359 2011-10-11 Banca Monte dei Paschi di Siena SpA Fitch
696 2011-10-06 Banca Monte dei Paschi di Siena SpA NA
697 2011-10-12 Banca Monte dei Paschi di Siena SpA NA
Now to my concern: I need to reorder the list, in order that the 3 rows of the respective downgrade are right after each other in my output. In my example like this:
Dates Bank Rating agency
14 2011-10-04 Banca Monte dei Paschi di Siena SpA NA
358 2011-10-05 Banca Monte dei Paschi di Siena SpA Moody's
696 2011-10-06 Banca Monte dei Paschi di Siena SpA NA
15 2011-10-10 Banca Monte dei Paschi di Siena SpA NA
359 2011-10-11 Banca Monte dei Paschi di Siena SpA Fitch
697 2011-10-12 Banca Monte dei Paschi di Siena SpA NA
The problem is that I cannot sort it by date,I tried, but if I have multiple downgrades on consecutive days it gave me a mess.
How can I solve this?