[R] Defining a "list"

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Wed Oct 15 23:47:38 CEST 2008

```Rolf Turner wrote:
>
> 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*.
>
probably because it's not what the inquirer knew he *should* have asked.
it does solve the task he used as an example in a way far better then
the imperative-style sequence of assignments (no intention to criticize
your intro to lists, just that it should not be taken as a generally
superior solution).  and it can probably be used as a pattern for the
real problem he wanted to solve.

vQ

>>
>> On Wed, Oct 15, 2008 at 8:19 AM, Megh Dal <megh700004 at yahoo.com> 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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help