One of the distinct advantages of using subset() with a large number of
columns is that given it's support for standard vector indexing in the
'select' argument, you can do something like:

  subset(dframe, select = c(name1, name5:name235, name437))

Here, by using the syntax "name5:name235", you are selecting a large
number of sequential columns in the dataframe, without having to
enumerate each column name individually. Of course, you can specify
multiple such sequential groups as appropriate.

HTH,

Marc Schwartz

On Fri, 2006-01-20 at 13:26 -0500, roger bos wrote:
> One idea is to keep the variable names you want in a vector, say 'use' and
> and get the indices using the match function:
> 
> match(use, names(df)
> 
> where use <- c("item1","item2",...)
> 
> You can then subset the data frame as follows:
> 
> newdf <- df[, match(use, names(df)]
> 
> HTH,
> 
> Roger
> 
> 
> On 1/20/06, Chuck Cleland <[EMAIL PROTECTED]> wrote:
> >
> > ?subset
> >
> > subset(dframe, select=c("name1", "name2", "name3"))
> >
> > Michael Reinecke wrote:
> > > Hi! I suspect there must be an easy way to access components of a data
> > frame by name, i.e. the input should look like "name1 name2 name3 ..." and
> > the output be a data frame of those components with the corresponding names.
> > I ve been trying for hours, but only found the long way to do it (which is
> > not feasible, since I have lots of components to select):
> > >
> > >
> > >
> > > dframe[names(dframe)=="name1" | dframe=="name2" | dframe=="name3"]
> > >
> > >
> > >
> > > Do you know a shortcut?
> > >
> > >
> > >
> > > Michael

______________________________________________
R-help@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

Reply via email to