[R] Listing Variables

bogdan romocea br44114 at gmail.com
Wed May 3 17:08:14 CEST 2006

Here's an example.
dfr <- data.frame(A1=1:10,A2=21:30,B1=31:40,B2=41:50)
vars <- colnames(dfr)
for (v in vars[grep("B",vars)]) print(mean(dfr[,v]))

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Farrel
> Buchinsky
> Sent: Wednesday, May 03, 2006 10:46 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Listing Variables
> How does one create a vector whose contents is the list of
> variables in a
> dataframe pertaining to a particular pattern?
> This is so simple but I cannot find a straightforward answer.
> I want to be able to pass the contents of that list to a "for" loop.
> So let us assume that one has a dataframe whose name is Data.
> And let us
> assume one had the height of a group of people measured at
> various ages.
> It could be made up of vectors Data$PersonalID, Data$FirstName,
> Data$LastName, Data$Height.1, Data$Height.5, Data$Height.9,
> Data$Height.10,Data$Height.12,Data$Height.20....many many
> more variables.
> How would one create a vector of all the Height variable names.
> The simple workaround is to not bother creating the vector
> "Data$Height.1"
> "Data$Height.5" "Data$Height.9" "Data$Height.10"
> "Data$Height.12""Data$Height.20"...but rather just to use the sapply
> function. However with some functions the sapply will not
> work and it is
> necessary to supply each variable name to a function (see thread at
> Repeating tdt function on thousands of variables)
> This is such a core capability. I would like to see it in the
> R-Wiki but
> could not find it there.
> --
> Farrel Buchinsky, MD
> Pediatric Otolaryngologist
> Allegheny General Hospital
> Pittsburgh, PA
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html

More information about the R-help mailing list