У меня большой набор данных, который имеет много столбцов со статусом. Я хочу сделать новый столбец, который имеет текущий статус участников. Я пытаюсь использовать 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"))
Кроме того, если вы можете включить любое объяснение вашего кода, я был бы очень признателен! Если бы ваше решение могло также использовать содержимое («статус»), это было бы особенно полезно, потому что в моем реальном наборе данных столбцы состояния очень грязные (например, summary_status_5292019, sum_status_07012018 и т. Д.).
Спасибо!