先謝謝大神的幫忙,
抱歉,是我沒說清楚
結算日的規定是每月第三個週三(如果放假則順延到下一個交易日)
我的資料是2011/1月的sample
也就是說,
假設2011/1/19為第三個週三並且正常交易
我想要篩選出的資料為
test<-rbind(filter(test, Date<=as.Date("2011/1/19"),`交割年月`=="201101"),
filter(test, Date>as.Date("2011/1/19"),`交割年月`=="201102"))
謝謝您願意幫忙~
※ 引述《egoweaver (Hiko)》之銘言:
: 雖然「在這個日期之前和之後做[交割年月]的篩選」的描述看不懂是怎樣
: 的操作,但是應該是類似這樣的狀況吧?
: # 如果需要安裝 package 的話 uncomment
: # install.packages(c("lubridate", "timeDate"))
: library(lubridate)
: library(timeDate)
: library(dplyr)
: # 指定要找出「每月第三個星期三」的時間段
: start_date <- "2007-09-01"
: end_date <- "2014-06-01"
: # 載入原始檔
: # 注意如果日期格式不是 "YYYY-MM-DD" 的話後面的部分要相應修改
: test <- read.table("test.txt", header = TRUE, stringsAsFactors = FALSE)
: # 找出指定時間段的每月第三個週三
: # 用 format() 把 timeDate 轉成 character
: period <- timeSequence(from = start_date, to = end_date, by = "month")
: thirdwed <- format(timeNthNdayInMonth(period, nday = 3, nth = 3,
: format = "%Y-%m-%d"))
: # 只留下 Date 為每月第三個週三的 observation
: test_fil <- filter(test, Date %in% thirdwed)
: # 依據交割年月做篩選
: # 這邊看不懂原 po 想做什麼篩選...
: result <- filter(test_fil, `交割年月` == 201101)