ループを使用してこの質問に答えることができます。ループなしで(できれば dplyr または plyr で)やりたいと思います。
データフレームと国のリストがあります
Data <- data.frame(
Date = c(2012:2014,2014,2013:2014),
Value = rnorm(6),
)
Countries <- c("AUS","USA","UK")
データフレームはこんな感じ
Date Value
1 2012 0.20200445
2 2013 1.75576426
3 2014 -0.67385232
4 2014 2.36476344
5 2013 -2.00068346
6 2014 -0.01290928
国リストをデータに割り当てる必要があります。適用のルールは、データ フレーム内の隣接する 2 つの日付の差が 0 以下になるまで、同じ国を適用し続けることです。完成品は次のようになります。
Date Value Countries
1 2012 0.64706706 AUS
2 2013 0.26878534 AUS
3 2014 -0.07091867 AUS
4 2014 0.49546373 USA
5 2013 -0.18158935 UK
6 2014 -0.43114076 UK