我有一個較大的環境數據集,我想在其中添加一列,然後爲新列A,B中的行分配一個字母,C,... L基於另一列中的日期範圍。到目前爲止我的代碼是如何在數據框中添加一列代表另一列中的日期範圍
prec <- read.csv("precipitation.csv") #read file
prec_DI <- subset(prec, Location=="Dauphin Island") #subset one location
這將創建像這樣的輸出:
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
我不在乎行名與日期列相同,我可以很容易地改變它。 我嘗試用
DI10$Period <- DI10
相反,我想創建一個新的列,其中的日期範圍2010-05-17 - 2010-06- 03被分配「A」,範圍2010-03-04 - 2010-03-16被分配「B」,依此類推。我非常感謝這方面的任何幫助,我確信這是一個直截了當的問題,但我剛開始學習。
按照要求我加入這個輸出
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")
這將是他人有所幫助,如果您有您的數據,例如在你的問題中複製並粘貼'dput(head(DI10))'的輸出。 –
謝謝你的建議,我把它添加到這個問題。 – user3281487
它在哪裏?我沒有看到'dput()' – Sotos