Rtip: use [[ ]]
wherever you can.
In R the [[ ]]
is the operator that (when supplied a scalar argument) pulls a single element out of lists (and the [ ]
operator pulls out sub-lists).
For vectors [[ ]]
and [ ]
appear to be synonyms. However, when writing reusable code you may not always be sure if your code is going to be applied to a vector or list in the future. It is safer to get into the habit of always using [[ ]]
when you intend to retrieve a single element.
Example with lists:
list("a", "b")[1] #> [[1]] #> [1] "a" list("a", "b")[[1]] #> [1] "a"
Example with vectors:
c("a", "b")[1] #> [1] "a" c("a", "b")[[1]] #> [1] "a"
Note on this article series.
This R tips series is short simple notes on R best practices, and additional packaged tools. The intent is to show both how to perform common tasks, and how to avoid common pitfalls. I hope to share about 20 of these about every other day to learn from the community which issues resonate and to also introduce some of features from some of our packages. It is an opinionated series and will sometimes touch on coding style, and also try to showcase appropriate Win-Vector LLC R tools.
var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));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...