Как создать фиктивную переменную с несколькими столбцами идентификатора кода и дат в R? - PullRequest
0 голосов
/ 23 марта 2019

У меня есть следующие данные:

ID month year 1 2 2002 1 1 2003 1 3 2003 2 2 2017 2 2 2017 3 1 2012 3 1 2002 3 2 2014 3 2 2014 4 1 2003 5 2 2002 5 5 2015 И я хочу создать следующую фиктивную переменную:

ID month year 1st 2nd 3rd 1 2 2002 1 0 0<br> 1 1 2003 0 1 0 1 3 2003 0 0 1 2 2 2017 1 0 0 2 2 2017 1 0 0 3 1 2012 1 0 0 3 1 2002 1 0 0 3 2 2014 0 1 0 3 2 2014 0 1 0 4 1 2003 1 0 0 5 2 2002 1 0 0 5 5 2015 0 1 0

кроме пяти столбцов (1, 2, 3, 4, 5)

Прогресс:

Я объединил детали даты в одну и использовал следующую функцию df$newcolumn <- ave(df$ID, df$date, FUN=seq_along) а затем сгенерировал фиктивную переменную для каждого на основе счетчика. однако эта функция считает повторяющиеся даты уникальными, чего я не хочу.

Примечание: есть тысячи точек данных и идентификаторов

1 Ответ

0 голосов
/ 24 марта 2019

Я нашел решение для всех, кому это нужно:

df$obs <- with(df, ave(df$date, df$ID, FUN=function(x) cumsum(!duplicated(x))))

, который создал счетчик, и я просто создал фиктивные столбцы из этого счетчика

...