Bir veri çerçevesindeki gruplar için (a) ve "b") kümülatif toplamını (v) elde etmeye çalışıyorum. Sonuç, alt satırdaki - satırları düzgün bir şekilde numaralandırılmış şekilde - nasıl veri alabilirim?Bir data.frame içindeki gruplara bir işlev uygulayın R
> library(nlme)
> g <- factor(c("a","b","a","b","a","b","a","b","a","b","a","b"))
> v <- c(1,4,1,4,1,4,2,8,2,8,2,8)
> cs <- rep(0,12)
> d <- data.frame(g,v,cs)
> d
g v cs
1 a 1 0
2 b 4 0
3 a 1 0
4 b 4 0
5 a 1 0
6 b 4 0
7 a 2 0
8 b 8 0
9 a 2 0
10 b 8 0
11 a 2 0
12 b 8 0
> r=gapply(d,FUN="cumsum",form=~g, which="v")
>r
$a
v
1 1
3 2
5 3
7 5
9 7
11 9
$b
v
2 4
4 8
6 12
8 20
10 28
12 36
> str(r)
List of 2
$ a:'data.frame': 6 obs. of 1 variable:
..$ v: num [1:6] 1 2 3 5 7 9
$ b:'data.frame': 6 obs. of 1 variable:
..$ v: num [1:6] 4 8 12 20 28 36
ben d $ cs içine bu dataframes verileri almak için bazı zahmetli yol bulurum sanırım, ama ben eksik bazı kolay çimdik olmak için orada var.
Her zaman ave'yi unutuyorum; Yine de diğer ikisi de aynı şekilde mi geliyor? –
@TylerRinker: esas olarak Martin'in çözümü ile aynı (benim düzenlememe bakın). –
Kafam karıştı b/c Ben joran ile karşılaştırıldı. Plyr'in işleri yeniden düzenlediğini unuttum. +1 –