Bunun diğer paketlerle elde edilebileceğini biliyorum, ancak data.table
'da yapmaya çalışıyorum (gruplama için en hızlı görünen gibi).Veri grubu gruplandırmasında mevcut grubun uzunluğu nasıl elde edilir?
df = data.frame(a=c(1,2,2,3))
ddply(df,.(a),summarise,V1=length(a))
ise
a V1
1: 1 1
2: 2 1
3: 3 1
içinde
library(data.table)
dt = data.table(a=c(1,2,2,3))
dt[,length(a),by=a]
sonuç daha mantıklı bir sonuç olduğunu
a V1
1 1 1
2 2 2
3 3 1
üretir. Sadece neden data.table
'un aynı sonuçları vermediğini ve bunun nasıl başarılabileceğini merak ediyorum.
+1 @jamborta da [SSS 2.10] (bkz http. bazı arka plan için org/datatable-faq.pdf). Bunun nedeni, potansiyel olarak uzun bir vektör (zaman ve alan) yoluyla aynı grup değerini tekrar etmekten kaçınmaktır. Daha uzun vektörlere sahip opslerde, R, gerektiğinde ve gerektiğinde 1 uzunluğundaki vektörleri geri dönüştürecektir. Yani '' 'buraya gitmenin yolu. –
Teşekkürler çocuklar, bu çok yararlı. – jamborta