将列的子集转换为R中的新数据帧行

时间:2014-02-04 23:11:00

标签: r dataframe

我想将具有唯一标识符的数据框列转换为多行(每个唯一标识符占一行)

示例:

V1    V2    Unique
5     12      1
10    15      1
20    35      1
40    50      2
60    70      2
100   50      2

我需要的是:

row1 5 10 20
row2 40 60 100

基本上我想要一排V1(从左到右排序,从头到尾匹配)当Unique相同时(完全忽略V2)

提前致谢。

1 个答案:

答案 0 :(得分:1)

例如,使用unstack,如果所有组具有相同的长度:

t(unstack(dat[,c('V1','Unique')]))
   [,1] [,2] [,3]
X1    5   10   20
X2   40   60  100

如果它们的长度不同,您可以使用split

split(dat$V1,dat$Unique)
$`1`
[1]   5  10  20 100

$`2`
[1] 40 60