(This article was first published on

If you use **Mollie's Research Blog**, and kindly contributed to R-bloggers)*attach*, it is easy to tell if a variable exists. You can simply use

*exists*to check:

`>attach(df)`

>exists("varName")

[1] TRUE

However, if you don't use

*attach*(and I find you generally don't want to), this simple solution doesn't work.

> detach(df)

> exists("df$varName")

[1] FALSE

Instead of using

*exists*, you can use

*in*or

*any*from the

**base**package to determine if a variable is defined in a data frame:

> "varName" %in% names(df)

[1] TRUE

> any(names(df) == "varName")

[1] TRUE

Or to determine if a variable is defined in a matrix:

> "varName" %in% colnames(df)

[1] TRUE

> any(colnames(df) == "varName")

[1] TRUE

### References

- https://stat.ethz.ch/pipermail/r-help/2009-June/202178.html
- https://stat.ethz.ch/pipermail/r-help/2011-February/267518.html

To

**leave a comment**for the author, please follow the link and comment on his blog:**Mollie's Research Blog**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...