[R] Recursive Indexing Failed

Patrick Breheny patrick.breheny at uky.edu
Mon May 9 15:48:56 CEST 2011


On 05/09/2011 09:24 AM, Alaios wrote:
> So the only thing that might work is a for..loop to collect all these together?
>
> Best REgards
> Alex
>

You could also use sapply:

x <- list(list(One="a",Two=c("b","c")),list(One="d",Two=c("e","f")))

sapply(x,'[[',"Two")
      [,1] [,2]
[1,] "b"  "e"
[2,] "c"  "f"

In your example, it seems

sapply(CRagentInTime[[1]][[2]],'[[',"sr")

would work, but I am not in a position to replicate your code, as is it 
not self-contained.

_______________________
Patrick Breheny
Assistant Professor
Department of Biostatistics
Department of Statistics
University of Kentucky


> --- On Mon, 5/9/11, Patrick Breheny<patrick.breheny at uky.edu>  wrote:
>
>> From: Patrick Breheny<patrick.breheny at uky.edu>
>> Subject: Re: [R] Recursive Indexing Failed
>> To: "Alaios"<alaios at yahoo.com>
>> Cc: "R-help at r-project.org"<R-help at r-project.org>
>> Date: Monday, May 9, 2011, 2:18 PM
>> On 05/09/2011 08:58 AM, Alaios
>> wrote:
>>> Dear all,
>>> I would like to ask your help concerning an error
>> message I get.
>>>
>>> I have the following struct
>>>
>>> str(CRagentInTime[[1]])
>>> List of 2
>>>     $ timelag: int 0
>>>     $ CRagent:List of 50
>>>      ..$ :List of 3
>>>      .. ..$ CRmap: num [1:256, 1:256] NA NA NA
>> NA NA NA NA NA NA NA ...
>>>      .. ..$ xy   : num [1:2] 10
>> 177
>>>      .. ..$ sr   : num [1:49]
>> -94.9 -92.8 -79.5 -97.6 -78.4 ...
>>>
>>> and I wanted to select all the sr fields for every of
>> each one of the 50 CRagent Lists I have.
>>>
>>> So I tried something like
>>>
>>> str(CRagentInTime[[1]][[2]][[1:10]]$sr) and I get a
>> message that
>>> Error in CRagentInTime[[1]][[2]][[1:10]] :
>>>      recursive indexing failed at level 3
>>
>> Selecting multiple elements of a list using an expression
>> like [[1:10]]
>> does not work.  For example:
>>
>> x<- list("a","b")
>> x[[1:2]]
>>
>> produces
>>
>> Error in x[[1:2]] : subscript out of bounds
>>
>> In general, the expression x[[1:2]] is not meaningful, as
>> the elements
>> of the list may be of different type, with no way to
>> concatenate them.
>>
>>>
>>> strange to me is that this one works
>>>
>>> str(CRagentInTime[[1]][[2]][[1]]$sr)
>>>     num [1:49] -106 -92.9 -101.3 -81.9
>> -96.7 ...
>>>
>>>
>>> I would like to thank you in advance for your help
>>> Best Regards
>>> Alex
>>>
>> _______________________
>> Patrick Breheny
>> Assistant Professor
>> Department of Biostatistics
>> Department of Statistics
>> University of Kentucky
>>



More information about the R-help mailing list