ich eine große Umweltdatenmenge haben, wo ich eine Spalte hinzufügen möchten, und dann einen Brief an die Zeilen in der neuen Spalte A zuweisen, B , C, ... L basierend auf einem Datumsbereich in einer anderen Spalte. Mein Code so weit istWie kann ich eine Spalte Datenrahmen mit einem Buchstaben repräsentiert einen Datumsbereich in einer anderen Spalte hinzufügen
prec <- read.csv("precipitation.csv") #read file
prec_DI <- subset(prec, Location=="Dauphin Island") #subset one location
Dieses eine Ausgabe wie so erzeugt:
prec_DI$Date <- as.Date(strptime(prec_DI$Date, format="%Y%m%d")) #convert date column to R format
df.DI<-data.frame(sumPrec=tapply(prec_DI$Prec, factor(prec_DI$Date), sum)) #sum all values for each date
df.DI$Date<-row.names(df.DI) #add a row names column
DI10 <- subset(df.DI, Date>="2010-05-17"& Date<="2010-10-31") #subset data based on a date range
Nun ist die Ausgabe wie folgt aussieht:
ich nicht egal Da die Zeilennamen mit denen in der Datumsspalte übereinstimmen, kann ich dies leicht ändern. Ich habe versucht, eine neue leere Spalte hinzuzufügen, indem
DI10$Period <- DI10
verwenden, aber diese erstellt:
Stattdessen habe ich eine neue Spalte erstellen möchten, wo Datumsbereich 2010-05-17 - 2010-06- 03 ist "A" zugeordnet, Bereich 2010-03-04 - 2010-03-16 ist "B" zugewiesen, und so weiter. Ich wäre sehr dankbar für jede Hilfe, ich bin mir sicher, dass es eine einfache Frage ist, aber ich fange gerade an zu lernen.
Da bat ich diese Ausgabe
structure(list(sumPrec = structure(c(0.4, 1.6, 1.9, 1.3, 1.4, 1.7), .Dim = 6L,
.Dimnames = list(c("2010-05-18", "2010-05-26", "2010-05-29", "2010-05-30",
"2010-05-31", "2010-06-01"))), Date = c("2010-05-18", "2010-05-26",
"2010-05-29", "2010-05-30", "2010-05-31", "2010-06-01")),
.Names = c("sumPrec", "Date"), row.names = c("2010-05-18", "2010-05-26",
"2010-05-29", "2010-05-30", "2010-05-31", "2010-06-01"), class = "data.frame")
Es wäre für andere hilfreich sein, wenn Sie Ihre Daten umfassen beispiels Kopieren Sie die Ausgabe von 'dput (head (DI10))' in Ihre Frage. –
Vielen Dank für den Vorschlag, ich habe es zu der Frage hinzugefügt. – user3281487
Wo ist es? Ich sehe kein 'dput()' – Sotos