Automatic creation of columns in zoo object
That's not really in the spirit of R. Normally one works with whole objects at a time. You might wish to rethink your entire approach to this.
On Tue, Feb 3, 2009 at 9:11 AM, Sergey Goriatchev <sergeyg at gmail.com> wrote:
Dear Gabor, Yes, these extra columns are of value as I later write code that fills in those columns row by row conditional on some event taking place, and when there is no event there should be zero in a particular cell. BIG thanks for the quick reply. I will try the code out right away! Kind Regards, Sergey On Tue, Feb 3, 2009 at 15:05, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
Not sure why you need to have all these extra columns if they are only
zero anyways. Could you not append them when you get data for them?
Are these placeholders really of any value? At any rate its done using
cbind or merge like this:
library(zoo)
library(chron)
nms <- sub(".Comdty", "tr", me.la.tickers)
zeromat <- matrix(0, nrow(me.la), length(nms), dimnames = list(NULL, nms))
cbind(me.la, zeromat)
In this case zeromat and me.la have the same dimensions so we could
alternately reduce it to this slightly briefer code:
zeromat <- 0 * me.la
colnames(zeromat) <- sub(".Comdty", "tr", me.la.tickers)
cbind(me.la, zeromat)
On Tue, Feb 3, 2009 at 8:44 AM, Sergey Goriatchev <sergeyg at gmail.com> wrote:
Hello, everyone
I have a question.
Assume I have the following zoo object:
me.la <- structure(c(1524.75, 1554.5, 1532.25, 1587.5, 1575.25, 1535.5,
1550, 1493.5, 1492.5, 1472.25, 1457.5, 1442.75, 1399, 1535.75,
1565.25, 1543.5, 1598.5, 1586.5, 1547, 1561.5, 1504.75, 1503.75,
1483.75, 1468.75, 1453.75, 1410, 1546.75, 1575.25, 1554, 1609,
1597.5, 1558.5, 1573, 1516.25, 1515.5, 1495, 1480, 1465, 1421.25,
1561.5, 1590, 1568.75, 1623.5, 1612, 1573, 1587.5, 1530.5, 1530,
1509.75, 1494.5, 1479.5, 1435.75, 1573.5, 1601.5, 1580.25, 1635,
1623.5, 1584.5, 1599, 1541.75, 1541.5, 1521.5, 1506, 1491, 1447.25,
1585.5, 1613, 1591.75, 1646, 1634.5, 1595.5, 1610, 1552.75, 1552.75,
1532.75, 1517, 1502, 1458.25, 1600, 1627.5, 1606.5, 1660, 1649,
1609.75, 1624.25, 1567, 1567, 1547, 1531, 1516, 1472.25, 1612,
1639.5, 1618.25, 1671.5, 1661, 1621.5, 1635.75, 1578, 1578, 1558,
1542, 1527, 1483.5), .Dim = c(13L, 8L), index = structure(c(14245,
14246, 14249, 14250, 14251, 14252, 14253, 14256, 14257, 14258,
14259, 14260, 14263), format = "m/d/y", origin = structure(c(1,
1, 1970), .Names = c("month", "day", "year")), class = c("dates",
"times")), class = "zoo", .Dimnames = list(NULL, c("LA1 COMDTY",
"LA2 COMDTY", "LA3 COMDTY", "LA4 COMDTY", "LA5 COMDTY", "LA6 COMDTY",
"LA7 COMDTY", "LA8 COMDTY")))
I also have a following variable (used in RBloomberg) in my environment:
me.la.tickers <- c("LA1 Comdty", "LA2 Comdty", "LA3 Comdty", "LA4
Comdty", "LA5 Comdty", "LA6 Comdty", "LA7 Comdty", "LA8 Comdty")
What I need to do is to automate the following manual piece of code:
me.la$LA2tr <- 0
me.la$LA3tr <- 0
me.la$LA4tr <- 0
me.la$LA5tr <- 0
me.la$LA6tr <- 0
me.la$LA7tr <- 0
me.la$LA8tr <- 0
Basically, I need to automatically create new columns in futures
object taking first part of names in me.la.tickers.
I tried with paste() and assign() combination, but could not get.
I could do the manual part, of course, it does not take much time, but:
1) I want to learn how to automatically create new columns in zoo objects
2) I have many more variables that have to be treated similarly (that
is, I have me.lp with corresponding me.lp.tickers, me.qc with
me.qc.tickers, etc. Then I have a bunch of variables starting with
"en", like en.co and en.cl, and corresponding ticker vectors, then
"ag" variables and "so" variables, as well). I have all in all 24 zoo
variables with 24 corresponding ticker vectors, and for each a
corresponding ticker vector, and for each zoo variable I need to
create 7 extra columns. That would take much time to do manually, and
a lot of code.
How would I do this automatically, please?
Thank you in advance for your help!
Regards,
Sergey
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
-- I'm not young enough to know everything. /Oscar Wilde Experience is one thing you can't get for nothing. /Oscar Wilde When you are finished changing, you're finished. /Benjamin Franklin Tell me and I forget, teach me and I remember, involve me and I learn. /Benjamin Franklin Luck is where preparation meets opportunity. /George Patten