Вот мои данные игрушки.
df <- tibble::tribble(
~date1, ~A Equity, ~date2, ~B Equity, ~date3, ~C Equity,
"1/29/2016", 35, "10/31/2017", 67, NA_character_, NA_real_,
"2/29/2016", 40, "11/30/2017", 31, NA_character_, NA_real_,
NA_character_,NA_real_, "12/29/2017", 56, NA_character_, NA_real_)
В реальном есть более 1000 столбцов и много других дат.
Я хочу увеличить данные так, чтобы желаемый вывод имел только столбцы даты, переменной и значения, как показано ниже :
desired_df <- tibble::tribble(
~date, ~var, ~value,
"1/29/2016", "A", 35,
"2/29/2016", "A", 40,
"10/31/2017", "B", 67,
"11/30/2017", "B", 31,
"12/29/2017", "B", 56)
Я пробовал это, но не получил желаемого результата:
df2 <- df %>%
pivot_longer(cols = contains("date"), names_to = "dates", values_to = "date") %>%
pivot_longer (cols = contains("Equity"), names_to = "var", values_to = "value") %>%
select(-dates) %>%
distinct() %>%
filter(!is.na(date))