[R] Indexing Elements of a Dataframe

Peter Dalgaard BSA p.dalgaard at biostat.ku.dk
Tue May 28 22:07:11 CEST 2002


Wolfgang Viechtbauer <wviechtb at s.psych.uiuc.edu> writes:

> Hello List-Members,
> 
> Let's say that I have the following code:
> 
> for (i in c(10, 20, 30)) {
>   for (j in c(200, 400, 600)) {
>     ...
>     ...
>     x <- "something"
>     * (code here)
>   }
> }
> 
> * Now, x is some result that I want to put into a results "matrix" that
> looks like this:
> 
>    200 400 600
> 10
> 20
> 30
> 
> I came up with an ad-hoc solution adding some counters (called "ro" and
> "co") and using a matrix for the results, which I could index with those
> counters (results[ro,co] <- x) and then converting that matrix into a
> dataframe and changing the row and column names. That seems a little too
> convoluted.
> 
> I tried to come up with a "neater" solution, trying to create a
> dataframe that looks like the one above and then indexing the fields in
> the dataframe by results$i[j] but I couldn't get it to work. Is there a
> way of doing this or maybe a better solution?

The canonical way is

f <- function(i,j) <<something>>

ilist <- c(10,20,30)
jlist <- c(200,400,600)

names(ilist) <- ilist
names(jlist) <- jlist

outer(ilist, jlist, f)

Notice that f should be vectorized, i.e. accept vectors for i and j.


-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list