2017-04-20 78 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

相關問題