Я пытаюсь создать новую переменную, которая указывает, произошло ли событие для участника в течение ожидаемого года.Ниже приведен пример фрейма данных df_raw.ID - это код участников, chil.int указывает, через сколько лет можно ожидать появления первого ребенка, событие указывает на то, что роды произошли, год указывает на год.
Я думал о переменной, которая в 1, еслизначение в году + значение в chil.int идентично значению года в строке, где событие == 1. Эта переменная должна быть 0, если это не так.
В приведенном ниже фрейме данных для отдельных A и B в этом новом столбце должны быть 1, а для отдельных C - 0.Каждый участник, который хотя бы один раз ожидал, что событие будет точно, должен получить 1. См. Df_new.
Кто-нибудь знает, как этого можно достичь?Или у вас есть другие идеи, как решить эту проблему?
Много танков!
Фрейм необработанных данных:
`df_raw <- read.table(text="
ID chil.int event year
row.name11 A 3 0 2013
row.name12 A 2 0 2014
row.name13 A 1 0 2015
row.name14 A 4 1 2016
row.name15 A 3 0 2017
row.name16 A 2 0 2018
row.name17 B 5 0 2010
row.name18 B 4 0 2011
row.name19 B 3 0 2012
row.name20 B 2 0 2013
row.name21 B NA 1 2015
row.name22 C 1 0 2015
row.name23 C 1 0 2016
row.name24 C NA 0 2017
",header=T)`
df_new - это то, как я хотел бы получить окончательные данныекадр, чтобы выглядеть.
`df_new <- read.table(text="
ID chil.int event year new.col
row.name11 A 3 0 2013 1
row.name12 A 2 0 2014 1
row.name13 A 1 0 2015 1
row.name14 A 4 1 2016 1
row.name15 A 3 0 2017 1
row.name16 A 2 0 2018 1
row.name17 B 5 0 2010 1
row.name18 B 4 0 2011 1
row.name19 B 3 0 2012 1
row.name20 B 2 0 2013 1
row.name21 B NA 1 2015 1
row.name22 C 1 0 2015 0
row.name23 C 1 0 2016 0
row.name24 C NA 0 2017 0
",header=T)`