2017-04-20 75 views
1

描述的值我有一个数据帧a和列表b插入n个数据帧,其中n是在其他列表

a = data.frame(a = c(1:4), c = c(1:4), b = c(1:4)) 
    b = c(4,3,4,5) 
    names(b) = c("a","c","b", "d") 

> a 
    a c b 
1 1 1 1 
2 2 2 2 
3 3 3 3 
4 4 4 4 

>b 
a c b d 
4 3 4 5 

我想在其中n由b [描述的每个列的a n个拷贝插入一世]。在这个例子中a应该是这样的:

a c b 
1 1 1 1 
2 1 1 1 
3 1 1 1 
4 1 1 1 
5 2 2 2 
6 2 2 2 
7 2 2 2 
8 3 3 3 
9 3 3 3 
10 3 3 3 
11 3 3 3 
12 4 4 4 
13 4 4 4 
14 4 4 4 
15 4 4 4 
16 4 4 4 

我想这应该很容易在R,但经过多次与mapply功能experimentig的我无法得到想要的结果。

+0

什么是'了'和与列名的关系向量'b'中的名称,从输出看起来没有关系? – zx8754

+1

名称之间没有关系 – team17

回答

3

试试这个:

a[rep(seq_along(b), b), ] 
2

splitstackshape有用于扩展数据帧的行一个非常有用的功能,

library(splitstackshape) 
expandRows(a, b, count.is.col = FALSE) 
+0

这也可以正常工作! – team17

相关问题