On 16/10/2008, at 12:28 AM, Henrique Dallazuanna wrote:

Try this:

lapply(1:n, rnorm)

That has nothing to do with what the inquirer *asked*.


On Wed, Oct 15, 2008 at 8:19 AM, Megh Dal <[EMAIL PROTECTED]> wrote:

Can anyone please tell me how to define a "list". Suppose I want to define
a list object "result" with length n then want to fill each place of
"result" with different objects. For e.g.

i=1

        Why have you set i=1?  You make no use at all of ``i''!!!

result[1] = rnorm(1)

i=2
result[2] = rnorm(2)

.......................

i=n
result[n] = rnorm(n)

What would be the best way to do that?

Simply start off with

        result <- list()

Then you can do

        result[[1]] <- rnorm(1)
        result[[2]] <- rnorm(2)
        result[[42]] <- "a load of dingos' kidneys"

Note 1:  This will result in a list of length (at this stage) 42.
Entries 3 to 41 inclusive of this list will be NULL.

Note 2:  Use the ***double*** brackets!  The distinction is that
if result is a *list* then

        result[1] is a ***list*** of length 1, the sole entry of that
        list being the first entry of result

        result[[1]] is the first entry of result, pure and simple.

If you tried

        result[2] <- rnorm(2)

you'd get a warning message about the wrong number of items to replace
(you have tried to assign something of length 2 to something of length 1) and result[[2] would contain only the first entry of the vector rnorm (2).

        cheers,

                Rolf Turner

######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}

______________________________________________
R-help@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.

Reply via email to