2015-01-16 56 views
0

我現在有一個叫做「DT」數據集,看起來像:在R中,如何找到數據集列中項目的平均出現次數?

Name 
A11 
B16 
B16 
B16 
B16 
B98 
B98 
M88 
K99 
K99 
K99 

這纔是真正的數據集,其中大約500萬行的子集。我想要做的是找出每個名稱的平均出現次數。也就是說,如果我可以創建一個新的數據集,看起來像:

Count 
1 
4 
2 
1 
3 

那麼這將是非常微不足道的只是採取由長度列相加,然後除以。我目前正在使用data.table包,並嘗試使用.N功能,但尚未能夠接近。我做的最好的是:

DT[,`:=` .N, by = Name] 

我覺得我缺少一點點東西,誰能讓我走向正確的方向?謝謝!

+1

嘗試'DT [,列表(計數= .N),由=名稱] [,名稱:= NULL] []'#如果你只需要'Count'列 – akrun

+0

@ user123276只是爲了澄清,您希望示例數據中* any * name的平均出現次數(例如,隨機選擇的名稱的平均出現次數)或2.2是否正確? – nrussell

+0

表格的列總和除以長度爲... er ... 1。也許你的意思是像prop.table(table(DT $ Name)) –

回答

1

你可以做

DT[,.N,by=Name] 

#> DT 
# Name N 
# 1: A11 1 
# 2: B16 4 
# 3: B98 2 
# 4: M88 1 
# 5: K99 3 
+0

好點,@akrun。我不知道爲什麼會需要這樣的預期結果。 –

相關問題