Ich bin neu bei der Verwendung von reshape2 und seiner Funktionalität. Ich habe eine Datentabelle, d, für die ich an den Stationen in den nächsten Jahren aggregierte Daten über Arten zählt bin versucht, für jedes Jahr für jede Spezies über alle Stationen der Mittelwert zählen zu erhalten:Verwenden von Rscast, um mit fehlenden Einträgen zu aggregieren
d<-data.table(station=c(1,1,4,3),year=c(2000,2000,2001,2000),
species=c("cat","dog","dog","owl"),abundance=c(10,20,30,10))
d
> station year species abundance
1: 1 2000 cat 10
2: 1 2000 dog 20
3: 4 2001 dog 30
4: 3 2000 owl 10
Ich benutze dcast auf Fülle aggregieren, aber ich scheine zu bekommen, was eine Summe, die den NaN Ergebnisse erzeugt, sondern als ein Mittelwert ignoriert:
dm<-dcast(d, year~ species,value.var="abundance",fun.aggregate = mean)
dm
> year cat dog owl
1: 2000 10 20 10
2: 2001 NaN 30 NaN
Was ich will, ist:
> year cat dog owl
1: 2000 3.33 6.67 3.33
2: 2001 0 30 0
Mit der argment fill = 0 Ergebnisse in den NaNs wird durch 0 ersetzt.
Ich wäre sehr dankbar für jeden Rat. Ich habe die Dokumentation gelesen und nach Tutorials gesucht, konnte das aber nicht lösen.