[R] Accessing named members of a list in an array

Patrick Burns pburns at pburns.seanet.com
Sun Jul 1 08:45:43 CEST 2012


Your problem is that you are trying to
use `$` on an atomic vector rather than
a list:

 > a<- array(list(NULL),dim=c(2,2))
 > a[[1,1]] <- c(a=2,b=3)
 > a[[1,1]]$a
Error in a[[1, 1]]$a : $ operator is invalid for atomic vectors
 > a[[1,1]]
a b
2 3
 > a[[1,1]] <- list(a=2,b=3)
 > a[[1,1]]$a
[1] 2
 > a[[1,1]]
$a
[1] 2

$b
[1] 3


 From the description of the problem, perhaps
it would be easier to just have a 3-dimensional
array.

Pat


On 30/06/2012 14:35, mlell08 wrote:
> Dear List,
>
> I've created a two-dimensional array which shall contain a value and its
> error, respectively.
> These two values are concatenated in al list and bear the names "sl" and
> "sl_err"
>
> But I can't adress them using the $-notation.
>
> a<- array(list(NULL),dim=c(2,2))
> a[[1,1]]<- c(a=2,b=3)
> a[[1,1]]$a
> ## Fehler in a[[1, 1]]$a : $ operator is invalid for atomic vectors
> a[[1,1]]["a"]       # This works however.
> ## a
> ## 2
>
> I always thought these two methods of indexing are equal? Is there any
> way to use the $-Style indexing?
>
> Thank you,
> Moritz
>

-- 
Patrick Burns
pburns at pburns.seanet.com
twitter: @portfolioprobe
http://www.portfolioprobe.com/blog
http://www.burns-stat.com
(home of 'Some hints for the R beginner'
and 'The R Inferno')



More information about the R-help mailing list