2014-03-03 74 views
3

的陣列(或標記的矢量)我有一個頻率表,如下所示:獲取從頻率表中的R

group time event 
a   1  0 
a   2  1 
a   3  0 
a   4  2 
a   5  0 
b   1  1 
b   2  0 
b   3  2 
b   4  1 
b   5  0 

和我想獲得僅表示倍,其中該事件是一個表觀察並鏈接到組......這樣的事情:

group time (n times, depending how many events occurred for each time) 
a  2 
a  4 
a  4 
b  1 
b  3 
b  3 
b  4 

我只獲得了載體的「代表」功能,但我失去了小組的標籤。 由於我的原始數據包含數千行,我真的需要一個快速的方法來完成R的工作。 我真的很感謝你的建議!

+0

歡迎SO!你能提供產生這些表的R代碼嗎?這會讓我們更容易快速幫助你。另外,第一張桌子如何成爲頻率表? (是否使用'table()'生成?) – Hugh

+0

[R:複製R data.frame的每一行並指定每行的複製次數?](http://stackoverflow.com/questions/ 19518728/R-複製-每行-AN-R-DATA框外 - 和 - 指定最數的-複製) – A5C1D2H2I1M1N2O1R2T1

回答

4

鑑於你的數據

x <- data.frame(group=c(rep("a", 5), rep("b", 5)), 
       time=rep(1:5, 2), 
       event=c(0,1,0,2,0,1,0,2,1,0)) 

你想:

x[rep(seq_len(nrow(x)), x$event), 1:2]