R 如何从一组行中选择特定行和特定列,并将它们转换为一行,然后用数据帧绑定它们?

R 如何从一组行中选择特定行和特定列,并将它们转换为一行,然后用数据帧绑定它们?,r,vectorization,R,Vectorization,如何从一组行中选择特定行和特定列,并将它们转换为一行,然后用数据帧绑定它们 请参见示例df,有第1组和第2组,每组有6行 组的第1行选择该组的第1、2和3行重量&高度&体积,并将其转换为一行并绑定到数据框 组的第二行选择该组的第1行、第2行和第3行重量&高度&体积,并将其转换为一行并绑定到数据框 3号行,选择该组重量和高度和体积的第2、3和4行,将其转换为一行并绑定到数据框 组的第4行选择该组的第3、4和5行重量&高度&体积,将其转换为一行并绑定到数据框 5th组行,选择该组Weight&Hei

如何从一组行中选择特定行和特定列,并将它们转换为一行,然后用数据帧绑定它们

请参见
示例df
,有第1组和第2组,每组有6行

组的第1行
选择该组的第1、2和3行重量&
高度
&
体积
,并将其转换为一行并绑定到数据框

组的第二行
选择该组的第1行、第2行和第3行重量&
高度
&
体积
,并将其转换为一行并绑定到数据框

3号
行,选择该组
重量
高度
体积
的第2、3和4行,将其转换为一行并绑定到数据框

组的第4行
选择该组的第3、4和5行重量&
高度
&
体积
,将其转换为一行并绑定到数据框

5th
组行,选择该组
Weight
&
Height
&
Volume
的第4、5和6行,将其转换为一行并绑定到数据框

6th
组行,选择该组
Weight
&
Height
&
Volume
的第4、5和6行,将其转换为一行并绑定到数据框

并将成为类似于
预期结果的东西。
如何通过矢量化的方式实现这一点

更新:我已经实现了我想要实现的目标,但是否有更有效的方法

# create a column to store the row indexes 
df$row = rownames(df)
# choose the first row of every group, and store the indexes into "first"
library(plyr)
df$V1 = 0
df$V2 = 0
df$V3 = 0
first = ddply(df, .(Group), function(x) x[ 1 , ])$row 
second= ddply(df, .(Group), function(x) x[ 2 , ])$row 
third = ddply(df, .(Group), function(x) x[ 3 , ])$row 
df$V1[first] = df$Weight[first]
df$V2[first] = df$Height[first]
df$V3[first] = df$Volume[first]

#....so on and do the rest of the V4~6
示例df

    Weight Height Volume Group   
 1:   11    12      17     1
 2:   25    17      19     1
 3:   29    25      20     1
 4:   34    35      27     1
 5:   39    36      31     1
 6:   18    20      37     1
 7:    9    12       4     2
 8:   10    33       7     2
 9:   18    25      19     2
10:   26    19      20     2
11:   27    22      25     2
12:   38    59      36     2
    Weight Height Volume Group   V1 V2 V3 V4 V5 V6 V7 V8 V9
 1:   11    12      17     1     11 12 17 29 25 20 29 25 20 
 2:   25    17      19     1     11 12 17 29 25 20 29 25 20 
 3:   29    25      20     1     25 17 19 29 25 20 34 35 27
 4:   34    35      27     1     29 25 20 34 35 27 39 36 31
 5:   39    36      31     1     34 35 27 39 36 31 18 20 37
 6:   18    20      37     1     34 35 27 39 36 31 18 20 37
 7:    9    12       4     2      9 12  4 10 33  7 18 25 19
 8:   10    33       7     2      9 12  4 10 33  7 18 25 19
 9:   18    25      19     2     10 33  7 18 25 19 26 19 20
10:   26    19      20     2     18 25 19 26 19 20 27 22 25
11:   27    22      25     2     26 19 20 27 22 25 38 59 36
12:   38    59      36     2     26 19 20 27 22 25 38 59 36
预期结果

    Weight Height Volume Group   
 1:   11    12      17     1
 2:   25    17      19     1
 3:   29    25      20     1
 4:   34    35      27     1
 5:   39    36      31     1
 6:   18    20      37     1
 7:    9    12       4     2
 8:   10    33       7     2
 9:   18    25      19     2
10:   26    19      20     2
11:   27    22      25     2
12:   38    59      36     2
    Weight Height Volume Group   V1 V2 V3 V4 V5 V6 V7 V8 V9
 1:   11    12      17     1     11 12 17 29 25 20 29 25 20 
 2:   25    17      19     1     11 12 17 29 25 20 29 25 20 
 3:   29    25      20     1     25 17 19 29 25 20 34 35 27
 4:   34    35      27     1     29 25 20 34 35 27 39 36 31
 5:   39    36      31     1     34 35 27 39 36 31 18 20 37
 6:   18    20      37     1     34 35 27 39 36 31 18 20 37
 7:    9    12       4     2      9 12  4 10 33  7 18 25 19
 8:   10    33       7     2      9 12  4 10 33  7 18 25 19
 9:   18    25      19     2     10 33  7 18 25 19 26 19 20
10:   26    19      20     2     18 25 19 26 19 20 27 22 25
11:   27    22      25     2     26 19 20 27 22 25 38 59 36
12:   38    59      36     2     26 19 20 27 22 25 38 59 36

你试过什么,即使没有矢量化?是的,我试过。你试过什么,即使没有矢量化?是的,我试过。