2016-11-01 47 views
0

我很安靜地與R合作,所以對於任何愚蠢的問題抱歉。通常我不得不處理真正的大數據集。 我想得到每個觀測的觀測數量,而不需要縮小原始數據集。 我有一個非常小的例子我的問題:如何將表值分配給R中的原始數據?

Observations<-c("A1","A2","B1","B3","B3","C1","C1","C1","C1","C2","C3","C3","C3") 

隨着表,我得到:

> table(Obsevations) 
Observations 
A1 A2 B1 B3 C1 C2 C3 
1 1 1 2 4 1 3 

但我真正想要的是:

A1 A2 B1 B3 B3 C1 C1 C1 C1 C2 C3 C3 C3 
1 1 1 2 2 4 4 4 4 1 3 3 3 

有一種優雅和快速如何在沒有任何循環的大數據集中執行此操作? 在此先感謝!

回答

1

我們基於示例需要rep這裏

tbl <- table(Observations) 
rep(tbl, tbl) 
# A1 A2 B1 B3 B3 C1 C1 C1 C1 C2 C3 C3 C3 
# 1 1 1 2 2 4 4 4 4 1 3 3 3 

,另一個選擇是ave

ave(seq_along(Observations), Observations, FUN = length) 
+1

也'表(觀察)[觀察]',儘管他們可能不希望處理表格對象作爲輸出。 – joran

+1

非常感謝!這真的很快,正是我需要的!它完美的作品。 – Antje