Расплав не работает при преобразовании из Reshape в Reshape 2

#r #dataframe #reshape #reshape2

#r #фрейм данных #изменение формы #reshape2

Вопрос:

Расплав не работает при переходе с Reshape на Reshape 2

У меня большой список значений. Вот сводка (много столбцов):

 List of 46
 $ Date: Date[1:9], format: "2011-03-04" ...
 $ 1   : num [1:9] 20278 19493 20587 24679 55708 ...
 $ 2   : num [1:9] 24029 25317 25103 28871 79423 ...
 $ 3   : num [1:9] 6657 7025 6603 8105 17883 ...
 $ 4   : num [1:9] 29684 27555 28956 31504 73638 ...
 $ 5   : num [1:9] 9572 8759 9947 11173 22341 ...
 $ 6   : num [1:9] 18935 20168 22963 24387 58640 ...
 $ 7   : num [1:9] 8299 8297 10484 10211 19277 ...
 $ 8   : num [1:9] 14365 13691 13906 17149 38364 ...
 $ 9   : num [1:9] 10333 10899 9708 11297 24100 ...
 $ 10  : num [1:9] 33647 33455 35327 49031 128927 ...
 $ 11  : num [1:9] 15090 16105 16343 18624 53809 ...
 $ 12  : num [1:9] 17971 16408 15911 18350 44048 ...
 $ 13  : num [1:9] 36820 44024 52026 62491 142186 ...
 $ 14  : num [1:9] 27036 33240 39248 53035 148606 ...
 $ 15  : num [1:9] 11490 11704 12587 17840 50201 ...
 $ 16  : num [1:9] 11016 11768 13711 13323 21258 ...
 $ 17  : num [1:9] 19792 18734 20477 30433 66028 ...
 $ 18  : num [1:9] 19920 20316 21285 29360 88008 ...
 $ 19  : num [1:9] 17046 19281 19610 30376 80302 ...
 $ 20  : num [1:9] 32886 38971 44672 53278 141423 ...
 $ 21  : num [1:9] 11324 13211 13123 15510 32014 ...
 $ 22  : num [1:9] 21416 23530 25978 37096 94035 ...
 $ 23  : num [1:9] 29527 33310 32701 42628 112442 ...
 $ 24  : num [1:9] 19479 19181 20525 25210 69559 ...
 $ 25  : num [1:9] 20727 20620 22190 29052 59528 ...
 $ 26  : num [1:9] 16056 15122 15240 17327 39292 ...
 $ 27  : num [1:9] 19020 28919 29659 43806 94475 ...
 $ 28  : num [1:9] 19041 15803 15940 20319 49065 ...
 $ 29  : num [1:9] 15775 15080 17841 21492 49891 ...
 $ 30  : num [1:9] 9554 10395 9605 11513 13558 ...
 $ 31  : num [1:9] 15322 16603 16348 17228 32973 ...
 $ 32  : num [1:9] 19752 21591 21272 24639 52204 ...
 $ 33  : num [1:9] 2017 2109 1944 1899 2224 ...
 $ 34  : num [1:9] 18797 18496 17514 20066 39702 ...
 $ 35  : num [1:9] 14306 13489 14507 18560 51028 ...
 $ 36  : num [1:9] 2247 2558 2232 2401 2931 ...
 $ 37  : num [1:9] 10971 10779 10272 11788 17386 ...
 $ 38  : num [1:9] 6241 6414 6024 6291 8257 ...
 $ 39  : num [1:9] 16933 18888 20160 25847 60786 ...
 $ 40  : num [1:9] 18254 17638 17956 20265 43778 ...
 $ 41  : num [1:9] 18249 19955 20016 25647 53012 ...
 $ 42  : num [1:9] 9917 10655 10194 10354 15472 ...
 $ 43  : num [1:9] 6561 6903 6941 6174 14034 ...
 $ 44  : num [1:9] 5857 5968 6283 7645 9861 ...
 $ 45  : num [1:9] 17185 18197 19508 26187 67014 ...
 - attr(*, "row.names")= int [1:9] 1 2 3 4 5 6 7 8 9
 - attr(*, "idvars")= chr "Date"
 - attr(*, "rdimnames")=List of 2
  ..$ :'data.frame':    9 obs. of  1 variable:
  .. ..$ Date: Date[1:9], format: "2011-03-04" ...
  ..$ :'data.frame':    45 obs. of  1 variable:
  .. ..$ Store: num [1:45] 1 2 3 4 5 6 7 8 9 10 ...
'data.frame':   405 obs. of  3 variables:
 $ Date : Date, format: "2011-03-04" ...
 $ value: num  20278 19493 20587 24679 55708 ...
 $ Store: num  1 1 1 1 1 1 1 1 1 2 ...
  

С оригинальной библиотекой reshape я могу расплавить ее без проблем:

  'data.frame':  405 obs. of  3 variables:
 $ Date : Date, format: "2011-03-04" ...
 $ value: num  20278 19493 20587 24679 55708 ...
 $ Store: num  1 1 1 1 1 1 1 1 1 2 ...
  

Однако, когда я пытаюсь использовать melt из Reshape2, я получаю следующее предупреждение и ошибку:

 attributes are not identical across measure variables; they will be dropped
Error: `by` must be supplied when `x` and `y` have no common variables.
  

Что здесь произошло между версиями? Есть предложения по исправлению? Я застрял, используя Reshape2 для этого. Спасибо!

Комментарии:

1. И, как еще один поворот, reshape2 был заменен tidyr . Если у вас есть возможность, я бы попытался пройти весь путь до этого.

2. Это полезно, я много видел о «сборе», но мне не приходило в голову, почему. Похоже, мне разрешено использовать tidyr, а также Reshape2, но у меня все еще могут возникнуть проблемы с преобразованием еще дальше от Reshape. Я проверю это прямо сейчас, но, возможно, у кого-то есть предложения по моей текущей проблеме.

3. Ах, еще один поворот! Как ни странно, gather() это из ранней версии tidyr и pivot_longer() фактически эта функция поддерживается сейчас! Я думаю, что они, наконец, договорились. Он перешел от cast и melt к spread и gather , и теперь, я думаю, остановился на pivot_wider() и pivot_longer() .

4. О, боже, это хорошая история, Адам, спасибо. Не могу заставить gather работать, все еще получаю ту же ошибку, поэтому я также попробую pivot_longer()