2017-07-24 66 views
1

我矩陣是這樣的:[R如何在一列中的應用價值重塑矩陣

ID  Count 
1  2 
2  3 
3  2 

我想創建一個矩陣,其中,同時增加了新的行爲ID數量等於Count值列中包含ID值中每行的索引。對於上面的矩陣,結果應該是:

ID Index 
1 1 
1 2 
2 1 
2 2 
2 3 
3 1 
3 2 

回答

3

因爲你可以只使用repsequence一個簡單的例子。

ID=c(1,2,3) 
Count=c(2,3,2) 
cbind(ID=rep(ID, Count), Index=sequence(Count)) 
#  ID Index 
#[1,] 1  1 
#[2,] 1  2 
#[3,] 2  1 
#[4,] 2  2 
#[5,] 2  3 
#[6,] 3  1 
#[7,] 3  2 
+2

我以爲他們要了矩陣? –

1

使用tidyverse

library(tidyverse) 
df1 <- df %>% 
      group_by(ID) %>% 
      nest() %>% 
      mutate(data=map(data,~seq_along(1:.x$Count))) %>% 
      unnest(data) 

輸出

 ID data 
1  1  1 
2  1  2 
3  2  1 
4  2  2 
5  2  3 
6  3  1 
7  3  2 
+0

這個答案也可以。我選擇了上面的答案,因爲它首先出現。感謝昨天的快速反應。 – user1757436