2015-08-20 35 views
5

Buradaki soruma cevap verdiğimi düşündüm: Cumulative sum until maximum reached, then repeat from zero in the next row ama aslında değil.Belirli bir değere ulaşılana kadar toplam

Yapmak istediğim, başka bir sütunda belirli bir değere ulaşılana kadar bir sütunu özetleyebilmektir. Biz mesela alırsak: 12 + 14 + 2 + 0,5 + 12:

Col1 Col2 Col3 
0  12  
0  14 
1  2 
2  0.5 
1  12 
4  3 
3  2 

Bence bu burada verecekti sütunda 1'de 4 ulaşana kadar sütunda 2 tüm değerleri toplamak edebilmek istiyorum

R'ye tamamen yeniyim ve nasıl devam edeceğimize dair hiçbir fikrim yok.

mydata = read.csv("mycsv.csv") 

cevap

5

Şu veya 4 Col1 içinde ulaşıldı mantıksal bir vektör elde etmek cumsum(mydata$Col1 == 4) == 0 kullanabilirsiniz:

Ne var bir csv dosyasından veri çerçevedir. Daha sonra, ilgili öğeleri Col2:

sum(mydata$Col2[cumsum(mydata$Col1 == 4) == 0]) 
# [1] 40.5 
'dan almak için basit indeksleme kullanabilirsiniz.
İlgili konular