как мне собрать 2 набора столбцов в тидыре [дубликаты]

На этот вопрос уже есть ответ:

Объединить несколько столбцов в аккуратные данные [дубликаты] 3 ответа Преобразование нескольких наборов столбцов измерений (широкий формат) в отдельные столбцы (длинный формат) 6 ответов

У меня есть следующая структура:

key | category_x | 2009 | category_y | 2010
test

пример данных по запросу

set.seed(24)
df <- data.frame(
key = 1:10,
category_x = paste0("stock_", 0:9),
'2008' = rnorm(10, 0, 10),
category_y = paste0("stock_", 0:9),
'2009' = rnorm(10, 0, 10),
category_z = paste0("stock_", 0:9),
'2010' = rnorm(10, 0, 10),
check.names=FALSE
)

как я могу изменить это на:

key | category | year

Я знаю, что могу использовать:

library(magrittr)
library(dplyr)
library(tidyr)

data %>% gather(key, category, starts_with("category_"))

но это не касается года. Я посмотрел на Соберите несколько наборов столбцов

но я не получаю команды извлечения спреда.

Ответы на вопрос(1)

Ваш ответ на вопрос