Wie sammle ich 2 Sätze von Spalten in tidyr [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Kombinieren Sie mehrere Spalten zu ordentlichen Daten [duplizieren] 3 answersMehrere Sätze von Messspalten (Breitformat) in einzelne Spalten (Langformat) umformen 6 answers

Ich habe die folgende Struktur:

key | category_x | 2009 | category_y | 2010
test

Beispieldaten wie angefordert

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
)

wie ändere ich das in:

key | category | year

Ich weiß, ich kann verwenden:

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

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

Aber das hat nichts mit dem Jahr zu tun. Ich sahGather mehrere Sätze von Spalten

aber ich bekomme die Ausbreitungsbefehle nicht.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage