Возможно, это глупость, которую я делаю, но я пытаюсь объединить значения некоторых столбцов, основываясь на том, содержат ли они значение или нет, а затем создать два новых столбца с именами start.week и end.week.
Мой start.week - «понедельник, вторник и среда».End.week - «четверг и пятница».
Name Monday Tuesday Wednesday Thursday Friday
John Red Pink
Francis Blue Gray Black
Bill Green Orange Purple
Bob Yellow Lilac Magenta
Я могу добавить две колонки для четверга и пятницы, используя:
start.week = c("Monday", "Tuesday", "Wednesday")
end.week = c("Thursday", "Friday")
options(stringsAsFactors = FALSE)
df = mutate(df, end.week = ifelse(Friday != "", paste0(Thursday, " + ", Friday), Thursday))
Назад Я не могу понять, какк этому для start.week
Может кто-нибудь дать мне подсказку?Буду вечно благодарен.
Исходные данные:
df = structure(list(Name = c("John", "Francis", "Bill", "Bob"), Monday =
c("Red", "Blue", "Green", "Yellow"), Tuesday = c("", "Gray", "", ""),
Wednesday = c("Pink", "", "Orange", ""), Thursday = c("",
"Black", "Purple", "Lilac"), Friday = c("", "", "", "Magenta"
)), class = "data.frame", row.names = c(NA, -4L))
Ожидаемый результат:
df = structure(list(Name = c("John", "Francis", "Bill", "Bob"), Monday =
c("Red", "Blue", "Green", "Yellow"), Tuesday = c("", "Gray", "", ""),
Wednesday = c("Pink", "", "Orange", ""), Thursday = c("",
"Black", "Purple", "Lilac"), Friday = c("", "", "", "Magenta"
), start.week = c("Red + Pink", "Black", "Green + Orange",
"Yellow"), end.week = c("", "", "Purple", "Lilac + Magenta"
)), class = "data.frame", row.names = c(NA, -4L))