我需要按日期范围对数据进行子集化,下面是代码。
我读了两个.csv(data2010,data2),我更改了日期格式以排除时间戳,重命名标题使它们对两个文件都相同,然后合并(data2011)。
文件似乎实际合并,但是当我按日期范围进行子集时,不会创建任何观察。
但是,日期分组如01/01/10 01/01/11 01/02/10 01/02/11 = 所以同月/同一天/不同年份配对。
data2010 <- read.csv(file="2010final.csv")
data2 <- read.csv(file="2011final.csv")
#change format of timestamp to date with mm/dd/yyyy for 2011
data2$newdate <-strptime(as.character(data2$Date), "%m/%d/%y")
data2$Date <- format(data2$newdate, "%m/%d/%y")
data2$newdate <- NULL
#rename and format 2010
names(data2010) <- c("Region", "District", "Age", "Gender", "Marital Status", "Date", "Reason")
data2010$newdate <-strptime(as.character(data2010$Date), "%m/%d/%y %H")
data2010$Date <- format(data2010$newdate, "%m/%d/%y")
data2010$newdate <- NULL
#merge
data2011 <- rbind(data2010, data2)
summary(data2011)
str(data2011)
#I see from the above commands that the files have merged
jan6Before <- subset(data2011, Date >= "12/22/10" & Date <= "01/06/11")
summary(jan6Before)
str(jan6Before)
#But this does not produce any observations
答案 0 :(得分:0)
我怀疑这是因为你的Date
变量是一个字符,而不是日期,与另一个字符常数比较,即“12/22/10”。
我建议您查看包lubridate
。然后,您可以轻松地将字符(在本例中为月 - 日 - 年)转换为比较,例如mdy(Date) >= mdy("12/22/10")
。
答案 1 :(得分:0)
合并您的变量newDate
,并将其用于子集化。