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
你试过什么,即使没有矢量化?是的,我试过。你试过什么,即使没有矢量化?是的,我试过。