[R] Extracting Vectors from Lists of Lists Produced by Functions
J.R. Lockwood
lockwood at rand.org
Fri May 30 21:54:36 CEST 2003
Dear Charles,
Since you are extracting vectors of the same length from each element
of the list, you can use "sapply"
"sapply(measure,function(x){x[1:3]})"
after which you can transpose, rename, make into a dataframe as
desired.
In general you would use "lapply" to apply a function to each element
of a list, resulting in new list.
best,
J.R. Lockwood
412-683-2300 x4941
lockwood at rand.org
http://www.rand.org/methodology/stat/members/lockwood/
> If you found my subject heading to be confusing then I'm sure you'll enjoy
> the example I've included below. I find the apply type functions to be
> wonderful for avoiding loops but when I use them with existing functions, I
> end up using loops anyway to extract the vectors I want. I would appreciate
> it if someone could show me how to avoid these loops. Thanks.
>
> EXAMPLE:
> noise<-matrix(data = rnorm(15, mean=0, sd=1), nrow = 5, ncol = 3,
> byrow = FALSE, dimnames = NULL)
> measure<-apply(noise,2,t.test)
> measure
> tval<-NULL
> df<-NULL
> pval<-NULL
> for (i in 1:length(measure)){
> tval[i]<-measure[[i]][[1]]
> df[i]<-measure[[i]][[2]]
> pval[i]<-measure[[i]][[3]]}
> data.frame(tval,df,pval)
>
> Charles E. White, Biostatistician
> Walter Reed Army Institute of Research
> 503 Robert Grant Ave., Room 1w102
> Silver Spring, MD 20910-1557
> 301 319-9781
> WRAIR Home Page: http://wrair-www.army.mil/
>
More information about the R-help
mailing list