У меня есть набор данных, подобный следующему:
id v1a v2a v3a v1b v2b v3b v1c v2c v3c
1 10 11 12 20 21 22 30 31 32
2 11 12 13 21 22 23 31 32 33
3 15 16 17 25 26 27 35 36 37
Я знаю, что могу довольно легко использовать сбор для одного набора столбцов, например
gather(df,index,Avar,v1a:v2a,factor_key=TRUE)
, который превратит мои данные в
id index Avar v1b v2b v3b v1c v2c v3c
1 v1a 10 20 21 22 30 31 32
1 v2a 11 20 21 22 30 31 32
1 v3a 12 20 21 22 30 31 32
2 v1a 11 21 22 23 31 32 33
2 v2a 12 21 22 23 31 32 33
2 v3a 13 21 22 23 31 32 33
...
Я хотел бы создать три индекса с соответствующими собранными столбцами, используя tidyverse так, чтобы структура выглядела как
id index1 Avar index2 Bvar index3 Cvar
1 v1a 10 v1b 20 v1c 30
1 v1b 11 v2b 21 v2c 31
1 v1c 12 v3b 22 v3c 32
2 v1a 11 v1b 21 v1c 31
2 v1b 12 v2b 22 v2c 32
2 v1c 13 v3b 23 v3c 33
...
. До сих пор я пытался подгруппировать операторы сбора, такие как
df1=gather(df,index1,Avar,v1a:v2a,factor_key=TRUE) %>%
gather(df,index2,Bvar,v1b:v2b,factor_key=TRUE) %>%
gather(df,index3,Cvar,v1c:v2c,factor_key=TRUE)
, но это не сработает, прежде чем я начну, так как я получаю сообщение об ошибке
Error in .f(.x[[i]],...) : object 'index2' not found
Попытался выполнить поиск, но не могу найти решение, которое могло бы использовать множественный сбор. Благодарен за любые идеи.