2013-07-29 101 views
0

我有一个数据帧:荏苒前ddply/mapply对数据帧

> s <- expand.grid(c(T,F),c(T,F)) 
> s 
    Var1 Var2 
1 TRUE TRUE 
2 FALSE TRUE 
3 TRUE FALSE 
4 FALSE FALSE 

,并想复制每一行的次数,这是存储在向量:

> r <- c(2,3,4,1) 

你知道该怎么做? 在函数式编程术语中,它只是一个压缩列表,复制和收集的映射。

我不知道如何做任何的拉链与plyr,或mapply地图...

回答

4

比所有容易得多:

s[rep(1:4,times = r),] 
    Var1 Var2 
1 TRUE TRUE 
1.1 TRUE TRUE 
2 FALSE TRUE 
2.1 FALSE TRUE 
2.2 FALSE TRUE 
3 TRUE FALSE 
3.1 TRUE FALSE 
3.2 TRUE FALSE 
3.3 TRUE FALSE 
4 FALSE FALSE 
+1

+1,但我会使用'rep(seq(nrow(s)),times = r)'而不是 –

+0

哦......你是如此的多维度,思维激动 – nicolas