У меня есть большой набор данных, в котором много столбцов со статусом. Я хочу создать новую колонку с текущим статусом участников. Я пытаюсь использовать case_when в dplyr, но не знаю, как перемещаться по столбцам. В наборе данных слишком много столбцов, чтобы я мог печатать каждый столбец. Вот образец данных:
library(dplyr)
problem <- tibble(name = c("sally", "jane", "austin", "mike"),
status1 = c("registered", "completed", "registered", "no action"),
status2 = c("completed", "completed", "registered", "no action"),
status3 = c("completed", "completed", "withdrawn", "no action"),
status4 = c("withdrawn", "completed", "no action", "registered"))
Для кода мне нужен новый столбец, в котором указывается окончательный статус участников; ОДНАКО, если их статус когда-либо был завершен, я хочу, чтобы он говорил о завершении, независимо от их окончательного статуса. Для этих данных ответ будет выглядеть так:
answer <- tibble(name = c("sally", "jane", "austin", "mike"),
status1 = c("registered", "completed", "registered", "no action"),
status2 = c("completed", "completed", "registered", "no action"),
status3 = c("completed", "completed", "withdrawn", "no action"),
status4 = c("withdrawn", "completed", "no action", "registered"),
finalstatus = c("completed", "completed", "no action", "registered"))
Кроме того, если вы можете включить какое-либо объяснение своего кода, я был бы очень признателен! Если ваше решение может также использовать contains ("status"), это было бы особенно полезно, потому что в моем реальном наборе данных столбцы состояния очень беспорядочные (например, summary_status_5292019, sum_status_07012018 и т. Д.).
Спасибо!