Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按月份R的子集日期向量_R_Date - Fatal编程技术网

按月份R的子集日期向量

按月份R的子集日期向量,r,date,R,Date,可能是一项琐碎的任务,但我无法用baseR解决它。 给定一个日期向量,如 dates=seq(as.Date("1951-01-01"), as.Date("2013-12-31"), by="month") 我只想选择每年的4月-9月: idx <- dates month <- function(x)as.numeric(format(x, '%m')) index <- which(month(idx) %in% c(4,5,6,7,8,9))# April-Sept

可能是一项琐碎的任务,但我无法用
base
R
解决它。 给定一个日期向量,如

dates=seq(as.Date("1951-01-01"), as.Date("2013-12-31"), by="month")
我只想选择每年的
4月-9月

idx <- dates
month <- function(x)as.numeric(format(x, '%m'))
index <- which(month(idx) %in% c(4,5,6,7,8,9))# April-Sept of each year

idx这就是你要找的吗

dates[month(dates) %in% 4:9]

既然你说了base R:

dates=seq(as.Date("1951-01-01"), as.Date("2013-12-31"), by="month")

get_dates_with_months <- function(date_vector, months_vector) {
    new_dates <- list()
    for(i in 1:length(date_vector)) {
        month <- strsplit(as.character(date_vector[i]), '-')[[1]][2]
        if(month %in% months_vector) { new_dates[i] <- list(date_vector[[i]]) }
    }
    res <- Filter(Negate(is.null), new_dates)
    return(res)
}
new_dates <- get_dates_with_months(dates, c('04','05','06','07','08','09'))
dates=seq(截止日期(“1951-01-01”),截止日期(“2013-12-31”),by=“月”)
获取日期和月份