使用重塑功能从宽到长进行复杂的移调

问题描述

我想调整合并文件的形状,在输入表的下面。

library(readr)
df2 <- read_table2("February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February    February
2020-Wk1    2020-Wk1    2020-Wk1    2020-Wk1    Sunday  Sunday  Sunday  Monday  Monday  Monday  Tuesday Tuesday Tuesday Wednesday   Wednesday   Wednesday   Thursday    Thursday    Thursday    Friday  Friday  Friday  Saturday    Saturday    Saturday
2020-Wk1    2020-Wk1    2020-Wk1    2020-Wk1    43863   43863   43863   43864   43864   43864   43865   43865   43865   43866   43866   43866   43867   43867   43867   43868   43868   43868   43869   43869   43869
Events  Events  Events  Events  HIGH    HIGH    HIGH    NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
Coupon  Coupon  Coupon  Coupon  XYZ XYZ XYZ ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
Degree  Degree  Degree  Degree  D2  D2  D2  NA  NA  NA  NA  NA  NA  NA  NA  NA  D8  D8  D8  D8  D8  D8  D8  D8  D8
Degree  Degree  Degree  Degree  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1
Degree  Degree  Degree  Degree  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2
Direct  4m  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  weekly  weekly  weekly  NA  NA  NA  NA  NA  NA
Direct  4m  NA  NA  NA  NA  NA  annual  annual  annual  annual  annual  annual  annual  annual  annual  quaterly    quaterly    quaterly    quaterly    quaterly    quaterly    quaterly    quaterly    quaterly
ENTERPRISE  127.0356495 -0.133328421    0.440191083 18.3207919  -0.151764777    0.423914708 13.63388989 -0.135213065    0.437225333 13.67001986 -0.151312727    0.441268748 14.15034022 -0.125308138    0.454903293 15.35746927 -0.141258572    0.437124251 19.42035378 -0.135101166    0.44071492  32.48278456 -0.112300122    0.444890248
2019-Wk1    2019-Wk1    2019-Wk1    2019-Wk1    43499   43499   43499   43500   43500   43500   43501   43501   43501   43502   43502   43502   43503   43503   43503   43504   43504   43504   43505   43505   43505
Events  Events  Events  Events  Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale    Sale
Coupon  Coupon  Coupon  Coupon  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF  15%OFF
degrees degrees degrees degrees D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2
degrees degrees degrees degrees NA  NA  NA  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1
degrees degrees degrees degrees D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4  D4
2020-Wk2    2020-Wk2    2020-Wk2    2020-Wk2    Sunday  Sunday  Sunday  Monday  Monday  Monday  Tuesday Tuesday Tuesday Wednesday   Wednesday   Wednesday   Thursday    Thursday    Thursday    valentine   valentine   valentine   Saturday    Saturday    Saturday
2020-Wk2    2020-Wk2    2020-Wk2    2020-Wk2    43870   43870   43870   43871   43871   43871   43872   43872   43872   43873   43873   43873   43874   43874   43874   43875   43875   43875   43876   43876   43876
Events  Events  Events  Events  NA  NA  NA  EFG EFG EFG EFG EFG EFG EFG EFG EFG EFG EFG EFG EFG EFG EFG HI  HI  HI
Coupon  Coupon  Coupon  Coupon  ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC MNO MNO MNO MNO MNO MNO
Degree  Degree  Degree  Degree  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8  D8
Degree  Degree  Degree  Degree  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  D8  D8  D8  D8  D8  D8  D8  D8  D8
Degree  Degree  Degree  Degree  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1  D1
Degree  Degree  Degree  Degree  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2  D2
Direct  4m  NA  NA  Annual  Annual  Annual  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
Direct  4m  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  quaterly    quaterly    quaterly    quaterly    quaterly    quaterly    quaterly    quaterly    quaterly")
数据框的形状是26,25

我已使用以下代码估算数据以获得所需的输出

col <- colnames(df2)
colnames(df2) <- as.character(unlist(df2[1,]))
df2 <- df2[,!duplicated(colnames(df2))] 
data2 <- reshape(df2,direction = "long",ids= 1:NROW(df2$`2020-Wk1`),varying = 2:8,split = list(regexp ="2020",include = TRUE)
                 )

这里有两件事:

  1. 日期为数字格式,需要更改为数字格式。
  2. 使用regexp的原因,在2020 wk-1下有3度行,在2020 Wk-2下有4度行。 以下是所需的输出
Month       week        calendar    calendar    Event   Coupon  Degree  Degree  Degree  Degree  direct  direct  enterprise  week        calendar    Event   Coupon  degrees degrees degrees
february    2020-Wk1    Sunday      2-Feb       HIGH    XYZ     D2      D1      D2                               $18.3      2019-Wk1    3-Feb       Sale    15% OFF D2              D4
february    2020-Wk1    Monday      3-Feb               ABC             D1      D2                      annual   $13.6      2019-Wk1    4-Feb       Sale    15% OFF D2      D1      D4
february    2020-Wk1    Tuesday     4-Feb               ABC             D1      D2                      annual   $13.7      2019-Wk1    5-Feb       Sale    15% OFF D2      D1      D4
february    2020-Wk1    Wednesday   5-Feb               ABC             D1      D2                      annual   $14.2      2019-Wk1    6-Feb       Sale    15% OFF D2      D1      D4
february    2020-Wk1    Thursday    6-Feb               ABC     D8      D1      D2              weekly  quaterly $15.4      2019-Wk1    7-Feb       Sale    15% OFF D2      D1      D4
february    2020-Wk1    Friday      7-Feb               ABC     D8      D1      D2                      quaterly $19.4      2019-Wk1    8-Feb       Sale    15% OFF D2      D1      D4
february    2020-Wk1    Saturday    8-Feb               ABC     D8      D1      D2                      quaterly $32.5      2019-Wk1    9-Feb       Sale    15% OFF D2      D1      D4
february    2020-Wk2    Sunday      9-Feb               ABC     D8              D1      D2      Annual                                  
february    2020-Wk2    Monday      10-Feb      EFG     ABC     D8              D1      D2                                      
february    2020-Wk2    Tuesday     11-Feb      EFG     ABC     D8              D1      D2                                      
february    2020-Wk2    Wednesday   12-Feb      EFG     ABC     D8              D1      D2                                      
february    2020-Wk2    Thursday    13-Feb      EFG     ABC     D8      D8      D1      D2      quaterly                                
february    2020-Wk2    Valentine   14-Feb      EFG     MNO     D8      D8      D1      D2      quaterly                                
february    2020-Wk2    Saturday    15-Feb      HI      MNO     D8      D8      D1      D2      quaterly                                

请提供您宝贵的输入以及我从中获得所需输出代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)