[R] a simple list question

arun smartpink111 at yahoo.com
Wed Nov 7 14:48:29 CET 2012


HI,


If you want to combine vectors  "x" and "y" into a list,
may be this also helps:
x.1<-1:3
x.2<-1:4
x.3<-5:10
y.1<-5:6
y.2<-8:10
ls()
# [1] "a"    "a1"   "L"    "mat1" "n"    "vecs" "x.1"  "x.2"  "x.3"  "y.1" 
#[11] "y.2" 

lapply(strsplit(ls()[grep("x|y",ls())],""),function(x) get(paste(x,collapse="")))
#[[1]]
#[1] 1 2 3
#
#[[2]]
#[1] 1 2 3 4
#
#[[3]]
#[1]  5  6  7  8  9 10
#
#[[4]]
#[1] 5 6
#
#[[5]]
#[1]  8  9 10
A.K.




----- Original Message -----
From: Rui Barradas <ruipbarradas at sapo.pt>
To: Erin Hodgess <erinm.hodgess at gmail.com>
Cc: R help <r-help at stat.math.ethz.ch>
Sent: Wednesday, November 7, 2012 6:44 AM
Subject: Re: [R] a simple list question

Hello,

Try the following.

x.1 <- 1:3
y.1 <- 1:4
x.2 <- 5:10


vecs <- ls()[grep("^x\\.[[:digit:]]+$", ls())]
lapply(vecs, function(.x) assign(.x, get(.x)))


Then you can use vecs to attribute names() to the result.

Hope this helps,

Rui Barradas

Em 07-11-2012 05:35, Erin Hodgess escreveu:
> Dear R People
>
> I have a simple list question, please:
>
> I have vectors x.1, x.2,...x.n (each of different lengths) and I would
> like to combine them into a list.
>
> However, I'm sure that there is a better way to do this than to type
> in x <- list(x.1,x.2,x.3,...)
>
>
> Is there a better way to do this, please?  I was thinking about
> possibly using grep?
>
> Thanks,
> Sincerely,
> Erin
>
>

______________________________________________
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.





More information about the R-help mailing list