Создать новую переменную с помощью оператора ifelse в R - PullRequest
0 голосов
/ 17 октября 2018

Я хотел бы создать новую переменную, используя оператор ifelse и следующие данные:

   ID    Column 1    Column 2    Column 3    Column 4     Column 5 
   Ann        1           Y            A     2000-10-15  2000-10-14
   Ann        1           N            A     2000-10-16  2000-11-14
   Ben        1           Y            B     2000-10-11  2000-11-14
   Ben        2           Y            B     2000-11-13  2000
   Fred       1           N            A     2000-11-11  2000-11-15
   Jenny      1           Y            A     2001-11-12  2000-10-14
   Jenny      1           Y            A     2001-11     2000-11-15

По идентификатору я хотел бы найти последнюю полную дату, если она соответствует определенным критериям.Критерии будут выбирать только последнюю дату, если она равна 1 в столбце 1, а A в столбце 3 в противном случае оставить пустым.Второй критерий, который я хотел бы использовать, - это ID, если в столбце 3 указано B, сохраните эту дату B.Таким образом, это выглядело бы так:

   ID    Column 1      Column 2   Column 3   Column 4   Column 5    Column 6 
   Ann        1           Y            A     2000-10-15  2000-10-14 2000-10-15
   Ann        1           N            A     2000-10-16  2000-11-14
   Ben        1           Y            B     2000-10-11  2000-11-14 2000-11-14
   Ben        2           Y            B     2000-11-13  2000
   Fred       1           N            A     2000-11-11  2000-11-15
   Jenny      1           Y            A     2001-11-12  2000-10-14 2001-11-12
   Jenny      1           Y            A     2001-11     2000-11-15

Я считаю, что утверждение if могло бы выглядеть примерно так, но мог бы быть и лучший путь.Кроме того, моя функция lastcompletedate не завершена:

 ifelse(Column 1 == 1 & Column 3 == "Y", lastcompletedate(Column4), 
 ifelse(Column 2 == 'B', lastcompletedate(Column5), "") 
 lastcompletedate <-ddply(df,.(ID), tail,1) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...