Selecting Specific Dates in R

ぃ、小莉子 提交于 2019-12-02 15:49:07

问题


I am wondering how to create a subset of data in R based on a list of dates, rather than by a date range.

For example, I have the following data set data which contains 3 years of 6-minute data.

      date            zone month day year hour minute temp speed gust dir 
1  09/06/2009 00:00   PDT     9   6 2009    0      0   62    2   15 156 
2  09/06/2009 00:06   PDT     9   6 2009    0      6   62   13   16 157 

I have used breeze<-subset(data, ws>=15 & wd>=247.5 & wd<=315, select=date:dir) to select the rows which meet my criteria for a sea breeze, which is fine, but what I want to do is create a subset of the days which contain those times that meet my criteria.

I have used...

as.character(breeze$date)
trimdate<-strtrim(breeze$date, 10)
breezedate<-as.Date(trimdate, "%m/%d/%Y")
breezedate<-format(breezedate, format="%m/%d/%Y")

...to extract the dates from each row that meets my criteria so I have a variable called breezedate that contains a list of the dates that I want (not the most eloquent coding to do this, I'm sure). There are about two-hundred dates in the list. What I am trying to do with the next command is in my original dataset data to create a subset which contains only those days which meet the seabreeze criteria, not just the specific times.

breezedays<-(data$date==breezedate)

I think one of my issues here is that I am comparing one value to a list of values, but I am not sure how to make it work.


回答1:


Lets assume your breezedate list looks like this and data$date is simple string:

  breezedate <- as.Date(c("2009-09-06", "2009-10-01"))

This is probably want you want:

  breezedays <- data[as.Date(data$date, '%m/%d/%Y') %in% breezedate]



回答2:


The intersect() function (docs) will allow you to compare one data frame to another and return those records that are the same.

To use, run the following:

breezedays <- intersect(data$date,breezedate) # returns into breezedays all records that are shared between data$date and breezedate


来源:https://stackoverflow.com/questions/18725014/selecting-specific-dates-in-r

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!