R重塑,通过块重构数据帧

Eli*_*isa 3 r chunks reshape data-management dataframe

我正在尝试重塑数据帧:

目前它看起来像这样:

ID   | Gender |A1 | A2 | A3 | B1 | B2 | B3
ID_1 | m      | 3 | 3  | 3  | 2  | 3  | 2 
ID_2 | f      | 1 | 1  | 1  | 4  | 4  | 4
Run Code Online (Sandbox Code Playgroud)

我希望有类似的东西:

 ID   | Gender | A1 | A2 | A3
 ID_1 | m      | 3  | 3  |  3   <- this would be columns A1 - A3 for ID 1
 ID_1 | m      | 2  | 2  |  2   <- this would be columns B1 - B3 for ID 1
 ID_2 | f      | 1  | 1  |  1   <- this would be columns A1 - A3 for ID 2
 ID_2 | f      | 4  | 4  |  4   <- this would be columns B1 - B3 for ID 2
Run Code Online (Sandbox Code Playgroud)

(A1和B1/A2和B2是相同的变量(关于内容),因此例如:A1和B1都是测试1的结果的变量,A2和B2都包含测试2的结果.所以为了评估它,我需要在一列中测试Test1的所有结果,在另一列中需要测试2的所有结果.我试图用"融化"解决这个问题,但它只是逐个融合数据帧,而不是像块一样.因为我需要按照它们的方式保留前2列,只重新排列最后4列,但是作为三个块)其他任何想法?谢谢!

Ram*_*ath 5

一个衬垫使用reshape基座R.

reshape(dat, varying = 3:8, idvar = 1:2, direction = 'long', drop=FALSE, 
   timevar = 'Test')

           ID Gender Test Test1 Test2 Test3
ID_1.m.A ID_1      m    A    A1    A2    A3
ID_2.f.A ID_2      f    A    A1    A2    A3
ID_1.m.B ID_1      m    B    B1    B2    B3
ID_2.f.B ID_2      f    B    B1    B2    B3
Run Code Online (Sandbox Code Playgroud)