Ich habe Wetterdaten mit Jahr, Monat und Tag markiert. Hier sind einige der Daten:Anzahl der Variablen auf 2 Ebenen gruppiert
Date MinT Year Month
1976-01-01 1.1 1976 1
1976-01-02 0.3 1976 1
1976-01-03 1.3 1976 1
Der Datendurchlauf ist 1976: 2016 für alle Monate. Rufen Sie diese Testdaten auf.
I-Gruppe und Untergruppe kann wie folgt (es ist sehr klobig, aber das ist, weil ich jeden Schritt zu testen versucht)
temp1 <- TestData %>%
group_by(Year)
temp2 <- temp1 %>%
subset(between(Month, 1, 3))
temp3 <- temp2
v1 <- replace(temp3$minT, temp3$minT >-2.0,0) ### replaces data above the threshold
temp3["v1"] <- v1
index1 <- with(temp3, tapply(X = v1, INDEX = Year, FUN = sum)) ## sums the month 1-3-2 degree values
index2 <- with(temp3, tapply(X = v1, INDEX = Year, FUN = length)) ## counts the number of items in each year for the selected period.
index2
gibt mir eine Zählung der Tage in jedem Monat. Ich kann index1
und 2 verwenden, um Index von "Wetter für den Monat" zu schaffen.
Was ich möchte, ist in der Lage, eine Zählung aller Tage unter -2 (oder was auch immer) zu erhalten und so einen Index von vergleichbarem Schweregrad für jeden Monat zu bekommen.
Die v1
Zuordnung ist notwendig, weil, wenn ich rle
verwenden Instanzen zu zählen, einige Monate Null-Instanzen haben und sie fallen aus dem letzten tally die kompilierte Tabelle von Indizes gegen minT
, year
und month
Bedeutung hat Indexvektoren unterschiedlicher Länge die R mag nicht. Ich habe versucht, rle
als Spaß in der index2
Aufgabe, aber das würde mich nicht den Tag zählt zu erreichen. Dasselbe gilt für die Verwendung eines Bereichs mit der Länge in dieser Zuweisung (index3
).
Kurz von der Generierung einer Mini-Tabelle für jedes Jahr, ich bin fest. Hat jemand irgendwelche Vorschläge?
versucht, dies auf meine Daten bekomme ich einen Fehler „keine anwendbare Methode für‚group_by_‘angewendet auf ein Objekt der Klasse“ C (‚double‘, ‚numerisch‘) " – BobA
Sie könnten' TestData $ Year <- Faktor (TestData $ Year) 'versuchen. Sonst brauchen wir wahrscheinlich mehr Informationen. – Birger
Danke! Ich habe mitten in der letzten Nacht darüber nachgedacht, bevor ich das gelesen habe deklariere temp1 einen Datenframe.Das hat group_by erlaubt zu arbeiten! Das Schwellwertfiltersegment hat dann die Tage erzeugt. Nochmals - Danke! – BobA