## Introduction

In this post, we will learn about the different methods of getting help in R. Often, we get stuck while doing some analysis as either we do not know the correct function to use or its syntax. It is important for anyone who is new to R to know the right place to look for help. There are two ways to look for help in R:

- built in help system
- online

In the first section, we will look at various online resources that can supplement the built in help system. In the second section, we will look at various ways to access the built in help system of R. Let us get started!

## Online Resources

### R Bloggers

R Bloggers aggregates blogs written in English from across the globe. This is the first place you want to visit if you want help with R, data analysis, visualization and machine learning. There are blogs on a wide range of topics and the latest content is delivered to your inbox if you subscribe. If you are a blogger yourself, share it with th R community by adding your blog to R Bloggers.

### Stack Overflow

Stack Overflow is a great place to visit if you are having trouble with R code or packages. Chances are high that someone has already encountered the same or similar problem and you can use the answers given by R experts. In case you have encountered a new problem or issue, you can ask for help by providing a reproducible example of your analysis along with the R code. Use the reprex package to create reproducible examples.

The R community is very active on Twitter and there are lot of R experts who are willing to help those who are new to R. Use the hashtag #rstats if you are asking for help or guidance on Twitter.

### RStudio Community

RStudio Community is similar to Stack Overflow. You can ask questions related to RStudio, Shiny, tidyverse and other RStudio products.

### r4ds Community

An online learning community that brings learners and mentors on a single platform. You can learn more about the community here.

### RStudio Resources

RStudio has very good resources including cheatsheets, webinars and blogs.

Reddit is another place where you can look for help. The discussions are moderated by R experts. There are subreddits for Rstats, Rlanguage, Rstudio and Rshiny.

### R Weekly

Visit RWeekly to get regular updates about the R community. You can find information about new packages, blogs, conferences, workshops, tutorials and R jobs.

### R User Groups

There are several R User Groups active across the globe. You can find the list here. Join the local user group to meet, discuss and learn from other R enthusiasts and experts.

### Data Helpers

Data Helpers is a list of data analysts, scientists and engineers willing to offer guidance put together by Angela Bassa. Visit the website to learn more about how you can approach for help and guidance.

## Internal

In this section, we will look at the following functions:

`help.start()`

`help()`

`?`

`??`

`help.search()`

`demo()`

`example()`

`library()`

`vignette()`

`browseVignettes()`

### help.start

The `help.start()`

function opens the documetation page in your browser. Here you can find manuals, reference and other materials.

`help.start()`

`## starting httpd help server ... done`

```
## If nothing happens, you should open
## 'http://127.0.0.1:19951/doc/html/index.html' yourself
```

### help

Use `help()`

to access the documentation of functions and data sets. `?`

is a shortcut for `help()`

and returns the same information.

```
help(plot)
?plot
```

### help.search

`help.search()`

will search all sources of documentation and return those that match the search string. `??`

is a shortcut for `help.search()`

and returns the same information.

```
help.search('regression')
??regression
```

### demo

demo displays an interactive demonstration of certain topics provided in a R package. Typing `demo()`

in the console will list the demos available in all the R packages installed.

```
demo()
demo(scoping)
```

```
##
##
## demo(scoping)
## ---- ~~~~~~~
##
## > ## Here is a little example which shows a fundamental difference between
## > ## R and S. It is a little example from Abelson and Sussman which models
## > ## the way in which bank accounts work. It shows how R functions can
## > ## encapsulate state information.
## > ##
## > ## When invoked, "open.account" defines and returns three functions
## > ## in a list. Because the variable "total" exists in the environment
## > ## where these functions are defined they have access to its value.
## > ## This is even true when "open.account" has returned. The only way
## > ## to access the value of "total" is through the accessor functions
## > ## withdraw, deposit and balance. Separate accounts maintain their
## > ## own balances.
## > ##
## > ## This is a very nifty way of creating "closures" and a little thought
## > ## will show you that there are many ways of using this in statistics.
## >
## > # Copyright (C) 1997-8 The R Core Team
## >
## > open.account <- function(total) {
## +
## + list(
## + deposit = function(amount) {
## + if(amount <= 0)
## + stop("Deposits must be positive!\n")
## + total <<- total + amount
## + cat(amount,"deposited. Your balance is", total, "\n\n")
## + },
## + withdraw = function(amount) {
## + if(amount > total)
## + stop("You don't have that much money!\n")
## + total <<- total - amount
## + cat(amount,"withdrawn. Your balance is", total, "\n\n")
## + },
## + balance = function() {
## + cat("Your balance is", total, "\n\n")
## + }
## + )
## + }
##
## > ross <- open.account(100)
##
## > robert <- open.account(200)
##
## > ross$withdraw(30)
## 30 withdrawn. Your balance is 70
##
##
## > ross$balance()
## Your balance is 70
##
##
## > robert$balance()
## Your balance is 200
##
##
## > ross$deposit(50)
## 50 deposited. Your balance is 120
##
##
## > ross$balance()
## Your balance is 120
##
##
## > try(ross$withdraw(500)) # no way..
## Error in ross$withdraw(500) : You don't have that much money!
```

### example

`example()`

displays examples of the specified topic if available.

`example('mean')`

```
##
## mean> x <- c(0:10, 50)
##
## mean> xm <- mean(x)
##
## mean> c(xm, mean(x, trim = 0.10))
## [1] 8.75 5.50
```

## Package Documentation

### library

Access the documentation of a package using `help()`

inside `library()`

. The package need not be installed for accessing the documentation.

`library(help = 'ggplot2')`

### vignette

A vignette is a long form guide to a R package. You can access the vignettes available using `vignette()`

. It will display alist of vignettes available in installed packages.

`vignette()`

To access a specific vignette from a package, specify the name of the vignette and the package.

`vignette('dplyr', package = 'dplyr')`

`## Warning: vignette 'dplyr' not found`

### browseVignettes

`browseVignettes()`

is another way to access the vignettes in installed packages. It will list the vignettes in each package along with links to the web page and R code.

`browseVignettes()`

### RsiteSearch

`RsiteSearch()`

will search for a specified topics in help pages, vignettes and task views using the search engine at this link and return the result in a browser.

`RSiteSearch('glm')`

```
## A search query has been submitted to http://search.r-project.org
## The results page should open in your browser shortly
```

## Summary

To sum it up, the R community is very beginner friendly and we hope you will find all the above resources, both internal help system and online resources useful.