Jeff Miller
2001-Feb-01 04:22 UTC
[R] constructing a vector from a dataframe and another vector
Hi All, I have a dataframe, divs, that looks like this:> divsdate ticker dividend 263 20010322 ADBE 0.025 264 20010628 ADBE 0.025 265 20010927 ADBE 0.025 4308 20010212 ED 0.550 4309 20010514 ED 0.410 5416 20010330 GE 0.137 5417 20010629 GE 0.137 5418 20010928 GE 0.137 and a character vector of symbols that might, for example, look like this: syms <- c("ADBE", "AAPL", "ED", "ED", "ADBE")>From these two data objects, I'd like to construct the following numericvector of dividends: divvec <- c( .025, .025, .025, .550, .410, .550, .410, .550, .410, .025, .025, .025) In other words, I'd like to construct a numeric vector by replacing each symbol in syms by the dividends associated with that symbol in the dataframe divs. Symbols can occur more than once in syms, and some of the symbols in syms might not be in divs. I see that if each symbol occurred only once in syms, it's just a matter of re-ordering divs and using as.vector(divs[,"dividend"]). I don't see how to proceed when symbols occur more than once in syms. Is there a clean way to do this? Many thanks in advance, Jeff Miller -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Bill.Venables@CMIS.CSIRO.AU
2001-Feb-01 05:32 UTC
[R] constructing a vector from a dataframe and another vector
| -----Original Message----- | From: Jeff Miller [mailto:jdm at xnet.com] | Sent: Thursday, 1 February 2001 14:22 | To: r-help at stat.math.ethz.ch | Subject: [R] constructing a vector from a dataframe and another vector | | | | Hi All, | | I have a dataframe, divs, that looks like this: | | | > divs | date ticker dividend | 263 20010322 ADBE 0.025 | 264 20010628 ADBE 0.025 | 265 20010927 ADBE 0.025 | 4308 20010212 ED 0.550 | 4309 20010514 ED 0.410 | 5416 20010330 GE 0.137 | 5417 20010629 GE 0.137 | 5418 20010928 GE 0.137 | | and a character vector of symbols that might, for example, | look like this: | | syms <- c("ADBE", "AAPL", "ED", "ED", "ADBE") | | From these two data objects, I'd like to construct the | following numeric vector of dividends: | | divvec <- c( .025, .025, .025, .550, .410, .550, .410, | .550, .410, .025, .025, .025) | | In other words, I'd like to construct a numeric vector by | replacing each symbol in syms by the dividends associated | with that symbol in the dataframe divs. | | Symbols can occur more than once in syms, and some of the | symbols in syms might not be in divs. | | I see that if each symbol occurred only once in syms, it's | just a matter of re-ordering divs and using | as.vector(divs[,"dividend"]). I don't see how to proceed when | symbols occur more than once in syms. | | Is there a clean way to do this? Let's take it in stages. First split up the dividends:> divvy.up <- split(divs$dividend, divs$ticker)Now check which values in syms belong to the set you have:> m <- is.element(syms, levels(divs$ticker))Now put together your vector:> divvec <- unlist(divvy.up[syms[m]])Easy as 1, 2, 3. Or, if you want it all in one large, undigestible lump:> divvec <- unlist(split(divs$dividend,divs$ticker)[syms[is.element(syms, levels(divs$ticker))]]) (Warning: untested code.) -- Bill Venables, CSIRO/CMIS Environmetrics Project Email: Bill.Venables at cmis.csiro.au Phone: +61 7 3826 7251 Fax: +61 7 3826 7304 Postal: PO Box 120, Cleveland, Qld 4163, AUSTRALIA | Many thanks in advance, | | Jeff Miller | | | | | | | -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. | -.-.-.-.-.-.-.-.- | r-help mailing list -- Read | http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html | Send "info", "help", or "[un]subscribe" | (in the "body", not the subject !) To: | r-help-request at stat.math.ethz.ch | _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. | _._._._._._._._._ | -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._