I have df as below, I want to add a new row based on ID
and semester_num
. so far using dplyr
would be:
df %>%
group_by(ID) %>%
group_by(semster_num) %>%
#add new row here
I want the new row has all records similar to the previous row except the third column value (subject_result2
) should be the same as column 4(Success
) of the previous row.
tibble::tribble(
~ID, ~semester_num, ~subject_result2, ~Success,
100000L, 1, "OTHERPassedTerm1", "Grad_ENSC",
100000L, 1, "OTHERPassedTerm1", "Grad_ENSC",
100000L, 1, "OTHERPassedTerm1", "Grad_ENSC",
100000L, 2, "MATH1PassedTerm1", "Grad_ENSC",
100000L, 2, "OTHERPassedTerm1", "Grad_ENSC",
100000L, 2, "OTHERPassedTerm1", "Grad_ENSC",
200000L, 1, "OTHERPassedTerm2", "fail",
200000L, 1, "MATH1PassedTerm2", "fail",
200000L, 2, "MATH1PassedTerm2", "fail",
200000L, 2, "OTHERPassedTerm2", "fail"
)
result: (I indicate the newly added rows)
~ID, ~semester_num, ~subject_result2, ~Success,
100000L, 1, "OTHERPassedTerm1", "Grad_ENSC",
100000L, 1, "OTHERPassedTerm1", "Grad_ENSC",
100000L, 1, "OTHERPassedTerm1", "Grad_ENSC",
>> 100000L, 1, "Grad_ENSC", "Grad_ENSC",
100000L, 2, "MATH1PassedTerm1", "Grad_ENSC",
100000L, 2, "OTHERPassedTerm1", "Grad_ENSC",
100000L, 2, "OTHERPassedTerm1", "Grad_ENSC",
>> 100000L, 2, "Grad_ENSC", "Grad_ENSC",
200000L, 1, "OTHERPassedTerm2", "Grad_ENSC",
200000L, 1, "MATH1PassedTerm2", "fail",
>> 200000L, 1, "Fail", "fail",
200000L, 2, "MATH1PassedTerm2", "fail",
200000L, 2, "OTHERPassedTerm2", "fail",
>> 200000L, 2, "fail, "fail
Please help to implement it in r. (it is totally fine to use other packages as well)