заранее спасибо за любую помощь.
У меня есть фрейм данных:
df <- structure(list(ID = c("0001", "0002", "0003", "0004"), May_1 = c(1,
2, 1, 3), May_5 = c(NA, 1, 2, 1), May_10 = c(NA, 3, 3, NA), May_16 = c(2,
NA, NA, NA), May_20 = c(3, NA, NA, 2)), row.names = c(NA, -4L
), class = c("tbl_df", "tbl", "data.frame"))
Я хотел бы создать новые столбцы с именами «Первое предпочтение», «Второе предпочтение» и «Третье предпочтение» на основе значений строк для каждого ответа ,
Если значение строки == 1, я хотел бы добавить столбец с именем «First Preference», содержащий имя столбца, где значение строки == 1.
Мои фактические данные содержат около 40 дат, которые будут меняться неделя за неделей, поэтому обобщаемое решение наиболее ценно.
Вот идеальный вариант:
df_ideal <- structure(list(ID = c("0001", "0002", "0003", "0004"), May_1 = c(1,
2, 1, 3), May_5 = c(NA, 1, 2, 1), May_10 = c(NA, 3, 3, NA), May_16 = c(2,
NA, NA, NA), May_20 = c(3, NA, NA, 2), First_Preference = c("May_1",
"May_5", "May_1", "May_5"), Second_Preference = c("May_16", "May_1",
"May_5", "May_20"), Third_Preference = c("May_20", "May_10",
"May_10", "May_1")), row.names = c(NA, -4L), class = c("tbl_df",
"tbl", "data.frame"))
A tidyverse
было бы предпочтительным решением, но я, безусловно, открыт для всего.
Спасибо!