özetlemek için: Ben dataframe özetlemek ve endeksleri her dizin için benzersiz bir sicile sahip olmak benim istenen çıktıyı istiyorumR: birçok kritere göre özetlemek ve İşte benim orijinal veri çerçevesi masayı
df <- read.table(text="
Date Index Event
2014-03-31 A x
2014-03-31 A x
2014-03-31 A y
2014-04-01 A y
2014-04-01 A x
2014-04-01 B x
2014-04-02 B x
2014-04-03 A x
2014-09-30 B x", header = T, stringsAsFactors = F)
date_range <- seq(as.Date(min(df$Date)), as.Date(max(df$Date)), 'days')
indices <- unique(df$Index)
events_table <- unique(df$Event)
ve her tarih Tarih sütunundaki tüm değerler için numaralı yeni bir sütunda olaylar_tablodaki her bir olayın kümülatif değerini sağlarken date_range. Bazen her indeks veya her tarih için kayıt yoktur. Bu veri çerçevesinin basitleştirilmiş bir sürümüdür -
Date Index cumsum(Event = x) cumsum(Event = y)
2014-03-31 A 0 0
2014-03-31 B 0 0
2014-04-01 A 2 1
2014-04-01 B 0 0
2014-04-02 A 3 2
2014-04-02 B 1 0
...
2014-09-29 A 4 2
2014-09-29 B 2 0
2014-09-30 A 4 2
2014-09-30 B 2 0
Bilginize:
İşte benim istenen çıkıştır. Her bir Tarih için yüzlerce farklı Dizin alanıyla yılda ~ 200.000 kayıt vardır.
Sabit disk sürücümün by
ve belki de aggregate
kullanılarak kızartılmadan önceki geçmişte yaptım, ancak işlem çok yavaştı ve bu sefer bu işe yaramadı. Ben de ddply
denedim, ancak onunla çalışmak için cumsum
işlevini alamıyorum. boşuna
ddply(xo1, .(Date,Index), summarise,
sum.x = sum(Event == 'x'),
sum.y = sum(Event == 'y'))
: ddply
kullanarak, böyle bir şey denedim.
Arama yoluyla, projemin birikimli kısmını oluşturan Replicating an Excel SUMIFS formula ürününü buldum, ancak bununla birlikte tarih/dizin başına yalnızca bir rekoru nasıl özetleyeceğimi anlayamadım. Ben de sum/aggregate data based on dates, R arasında rastladım ama burada dinamik tarih yönünü çalıştıramadım.
Yardım edebilecek herkes için teşekkürler!
Beklediğiniz çıktıyla karıştırıldım. Beklenen çıktınızın bir satırında, cumsum (Event = x) '' 0' olmasını mı bekliyorsunuz? Orijinal 'df'' Date = 2014-03-31', 'Index = A' ve' Event = x' ile 2 satıra sahip olsa da? – davechilders
Vurgulama eklemek istiyorum "İstenen çıktının veri çerçevemi özetlemesini istiyorum ve indekslerdeki her indeks ve date_range'daki her bir tarih için benzersiz bir kayıt olmasını istiyorum. Etkinlik, her bir olayın kümülatif değerini yeni bir sütunda ** oluşturabilir. Tarih sütunu ** " ...... Arka plan için, o sabah bana sunulacak bilgileri kullanarak bir model oluşturmaya çalışıyorum. Yani 2014-03-31 sabahı, elimde veri yok.Gün boyunca, veri toplanır ve 2014-04-01 verileri, 2014-03-03'teki veriler 2014-04-01 – exhoosier10
'daki olayları tahmin etmem için elimden geleni yapacaktır. İlk okumamda bunu özledim. – davechilders