(This article was first published on

**Mollie's Research Blog**, and kindly contributed to R-bloggers)If you use *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 their blog:**Mollie's Research Blog**.R-bloggers.com offers

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