Here is the code: EDIT: SEE REPRODUCIBLE CODE BELOW
>require("quantmod")
>
> corn <- as.xts(read.zoo("~/CORN.csv", sep=",", format ="%m/%d/%Y", header=TRUE))
>
> head(corn)
[,1]
1962-01-03 4.03
1962-01-04 3.99
1962-01-05 4.02
1962-01-08 4.03
1962-01-09 4.05
1962-01-10 4.07
>
> corn <- to.weekly(corn)[,4]
>
> head(corn)
corn.Close
1962-01-05 4.02
1962-01-12 4.08
1962-01-19 4.11
1962-01-26 4.11
1962-02-02 4.08
1962-02-09 4.05
How do you start every week on Tuesday? Something along the lines of
indexAt='startof("Tuesday")'
where indexAt is a parameter variable in the to.weekly() function.
The purpose for this is to line up with weekly COT data.
EDIT ##################
I've created some confusion by not providing reproducible code, so here is some with a partial solution incorporated based on suggestions by J. Winchester below:
> getSymbols("GLD")
[1] "GLD"
> GLD <- GLD[,4]
> head(GLD, n=2)
GLD.Close
2007-01-03 62.28
2007-01-04 61.65
> tues <- weekdays(time(GLD)) == "Tuesday"
> gold <- merge(GLD, tues)
> head(gold, n=5)
GLD.Close tues
2007-01-03 62.28 0
2007-01-04 61.65 0
2007-01-05 60.17 0
2007-01-08 60.48 0
2007-01-09 60.85 1