Мои данные похожи на следующее:Дата ближе, но раньше, чем на определенную дату на основании другого фактора
data.frame(date=c("2013-07","2013-08","2013-09","2013-11",
"2013-11","2013-11","2014-02","2014-03"),
X=c("0","1","0","0","1","0","1","0"))
date x
1 2013-07 0
2 2013-08 1
3 2013-09 0
4 2013-11 0
5 2013-11 1
6 2013-11 0
7 2014-02 1
Я хочу создать новую функцию, которая показывает данные, не позднее текущей даты но ближе от текущей даты, когда х = 1
date x lastdate
1 2013-07 0 NA
2 2013-08 1 2013-08
3 2013-09 0 2013-08
4 2013-11 0 2013-11
5 2013-11 1 2013-11
6 2013-11 0 2013-11
7 2014-02 1 2014-02
8 2014-03 0 2014-02
Можно ли добавить объяснение о том, как логика в вашем заявлении может построить это векторное приложение «lastdate» ropriately? Я потратил и час и изменил попытку собрать вместе, как 'findInterval()', и это утверждение работает вместе. К сожалению, я не могу оглянуться, как условная логика базы R решает вытащить из вектора «1» или вместо этого вытащить из вектора «findInterval + 1». –
@leerssej Я добавил объяснение - надеюсь, что теперь это понятно. Как только обратите внимание, всякий раз, когда вы не понимаете какой-то определенный код, вы можете сначала затормозить его. Например, вы можете начать с поиска 'findInterval (df $ date, df $ date [df $ X ==" 1 "]) + 1' и т. Д. –
Спасибо. Я разбил его на все свои компоненты; несколько раз фактически. Однако все отдельные части не складывались. Ваше объяснение полезно, поскольку, как я думаю, теперь я понимаю, что ваше решение, похоже, более или менее влагает свои векторы: итеративно добавляет к своей вершине, когда находит значения, которые были до их первого? –