我想使用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
通过ID,我希望找到符合特定条件的最后完成日期。如果第1列中的日期为1,则仅选择最后一个日期,否则第3列中的A为空白。我要使用的第二个条件是按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)