[R] Selecting data frame components by name - do you know a shorter way?

Marc Schwartz (via MN) mschwartz at mn.rr.com
Fri Jan 20 19:17:32 CET 2006

On Fri, 2006-01-20 at 18:55 +0100, 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

See ?subset:

  subset(dframe, select = c(name1, name2, name3))

Alternatively, if the number of columns to remove is less than the
number of columns to select, you can precede the column names with a "-"
as per standard indexing conventions. 

See the Details section and the examples in ?subset.


Marc Schwartz

More information about the R-help mailing list