我有一个较大的环境数据集,我想在其中添加一列,然后为新列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