[R] extract element from list by rownames
B77S
bps0002 at auburn.edu
Tue Apr 12 17:21:45 CEST 2011
This probably is not ideal, but this works on a list of mine......
## so you can see the structure of my list
> str(srMT)
List of 4
$ mode : chr "discrete"
$ ks.stat : chr "mean"
$ observed :List of 4
..$ filter: num [1:13, 1:4] 0.213 0.207 0.144 0.311 0.24 ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ ID_2: chr [1:13] "BC_SP1" "BU1_SP1" "BU2_SP1" "MK_SP1" ...
.. .. ..$ : chr [1:4] "vel1" "vel2" "vel3" "vel4"
..$ chi2 : num [1:3] 6.93e+02 6.93e+02 1.93e-12
..$ df : num [1:3] 36 39 3
..$ p : num [1:3] 0 0 1
$ bootstrap:List of 6
..$ filter : num [1:13, 1:4, 1:1000] 0.245 0.254 0.247 0.244 0.25 ...
##### LIST just keeps going and going and going
# as an example
> (srMT[[3]][1])
$filter
ID_2 vel1 vel2 vel3 vel4
BC_SP1 0.2127431 0.1923574 0.2839013 0.3109983
BU1_SP1 0.2072090 0.3094771 0.2219164 0.2613975
BU2_SP1 0.1437481 0.3270975 0.2401788 0.2889757
MK_SP1 0.3114887 0.2503257 0.2177326 0.2204530
MO_SP1 0.2395539 0.2079802 0.3208321 0.2316338
MU1_SP1 0.2336137 0.1923791 0.2386081 0.3353991
MU2_SP1 0.3607257 0.2466847 0.1501613 0.2424284
MU3_SP1 0.3583597 0.2499569 0.1652739 0.2264095
RB_SP1 0.2912842 0.2742916 0.1768310 0.2575933
SB1_SP1 0.2108506 0.2075117 0.3399161 0.2417215
SB2_SP1 0.2910056 0.2306834 0.2507012 0.2276098
SB4_SP1 0.2958040 0.2358855 0.2433465 0.2249641
SC_SP1 0.2509970 0.2129797 0.3071544 0.2288689
## some rownames
b <- c("MK_SP1", "SB1_SP1", "SB4_SP1")
## this works to pull them out based on row names
> data.frame((srMT[[3]][1]))[b,]
filter.vel1 filter.vel2 filter.vel3 filter.vel4
MK_SP1 0.3114887 0.2503257 0.2177326 0.2204530
SB1_SP1 0.2108506 0.2075117 0.3399161 0.2417215
SB4_SP1 0.2958040 0.2358855 0.2433465 0.2249641
I hope this helps, good luck!
Alfredo Alessandrini wrote:
>
> Hi,
>
> I've a list of list.
>
> I want to extract an element by the rownames.
>
> I can extract it by:
>
> data[[1]][[1]][[4]][1]
>
>
> But I want to exctract it by a command like this:
>
> data[[1]][["B0"]][["smac"]][["cont"]][1]
>
> It's possible?
>
>
> Thanks,
>
> Alfredo
>
>
>
>
>> str(data)
> List of 1
> $ :List of 4
> ..$ :List of 4
> .. ..$ : num [1, 1:3] 0.4 0.458 0.5
> .. ..$ : num [1:41, 1] 0.4 0.403 0.405 0.407 0.41 ...
> .. ..$ : num [1:41, 1] 0.000128 0.000328 0.000528 0.000728 0.000992 ...
> .. ..$ :List of 1
> .. .. ..$ : num [1:49, 1] 0 0 -0.00626 0.99832 0 ...
> .. .. ..- attr(*, "dim")= int [1:3] 1 1 1
> .. .. ..- attr(*, "dimnames")=List of 3
> .. .. .. ..$ : chr "cont"
> .. .. .. ..$ : NULL
> .. .. .. ..$ : NULL
> .. ..- attr(*, "dim")= int [1:3] 4 1 1
> .. ..- attr(*, "dimnames")=List of 3
> .. .. ..$ : chr [1:4] "begin.mode.end" "lambda" "sensi" "smac"
> .. .. ..$ : NULL
> .. .. ..$ : NULL
> ..$ :List of 4
> .. ..$ : num [1, 1:3] 0.58 0.67 0.782
> .. ..$ : num [1:82, 1] 0.58 0.583 0.585 0.588 0.59 ...
> .. ..$ : num [1:82, 1] 0.0017 0.00168 0.00165 0.00162 0.0016 ...
> .. ..$ :List of 1
> .. .. ..$ : num [1:49, 1] -0.00597 0.71045 -0.05844 0.99187 -0.00807 ...
> .. .. ..- attr(*, "dim")= int [1:3] 1 1 1
> .. .. ..- attr(*, "dimnames")=List of 3
> .. .. .. ..$ : chr "cont"
> .. .. .. ..$ : NULL
> .. .. .. ..$ : NULL
> .. ..- attr(*, "dim")= int [1:3] 4 1 1
> .. ..- attr(*, "dimnames")=List of 3
> .. .. ..$ : chr [1:4] "begin.mode.end" "lambda" "sensi" "smac"
> .. .. ..$ : NULL
> .. .. ..$ : NULL
> ..$ :List of 4
> .. ..$ : num [1, 1:3] 0.7 0.82 1.03
> .. ..$ : num [1:133, 1] 0.7 0.703 0.705 0.708 0.71 ...
> .. ..$ : num [1:133, 1] 0.0007 0.000775 0.00085 0.000925 0.001 ...
> .. ..$ :List of 1
> .. .. ..$ : num [1:49, 1] -0.030584 0.559164 -0.000269 0.995624
> -0.006616 ...
> .. .. ..- attr(*, "dim")= int [1:3] 1 1 1
> .. .. ..- attr(*, "dimnames")=List of 3
> .. .. .. ..$ : chr "cont"
> .. .. .. ..$ : NULL
> .. .. .. ..$ : NULL
> .. ..- attr(*, "dim")= int [1:3] 4 1 1
> .. ..- attr(*, "dimnames")=List of 3
> .. .. ..$ : chr [1:4] "begin.mode.end" "lambda" "sensi" "smac"
> .. .. ..$ : NULL
> .. .. ..$ : NULL
> ..$ :List of 4
> .. ..$ : num [1, 1:3] 1.45 1.64 1.8
> .. ..$ : num [1:141, 1] 1.45 1.45 1.46 1.46 1.46 ...
> .. ..$ : num [1:141, 1] 0.001 0.001 0.001 0.001 0.001 ...
> .. ..$ :List of 1
> .. .. ..$ : num [1:49, 1] -0.00547 0.65798 0 0 0 ...
> .. .. ..- attr(*, "dim")= int [1:3] 1 1 1
> .. .. ..- attr(*, "dimnames")=List of 3
> .. .. .. ..$ : chr "cont"
> .. .. .. ..$ : NULL
> .. .. .. ..$ : NULL
> .. ..- attr(*, "dim")= int [1:3] 4 1 1
> .. ..- attr(*, "dimnames")=List of 3
> .. .. ..$ : chr [1:4] "begin.mode.end" "lambda" "sensi" "smac"
> .. .. ..$ : NULL
> .. .. ..$ : NULL
> ..- attr(*, "dim")= int [1:3] 4 1 1
> ..- attr(*, "dimnames")=List of 3
> .. ..$ : chr [1:4] "B0" "B2" "B3" "MIR"
> .. ..$ : NULL
> .. ..$ : NULL
>>
>
> ______________________________________________
> R-help at 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.
>
--
View this message in context: http://r.789695.n4.nabble.com/extract-element-from-list-by-rownames-tp3444730p3444892.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list