3.1 Summary

We will begin learning R v RMarkdown, which helps you tell her story the data analysis because you have the right to write text alongside the code. We space actually learning two languages at once: R and Markdown.

You are watching: Attempt to use zero-length variable name

3.1.1 Objectives

In this lesson we will certainly get acquainted with:

the RStudio interfaceRMarkdownfunctions, packages, assist pages, and error messagesassigning variables and also commentingconfiguring katifund.org through RStudio

3.2 RStudio Orientation

What is the RStudio ide (integrated advancement environment)? The RStudio ide is software that greatly improves her R experience.

I think the R is your airplane, and the RStudio concept is her airport. You room the pilot, and also you usage R to go places! With exercise you’ll gain skills and confidence; you can fly further distances and also get through tricky situations. You will end up being an awesome pilot and can paris your airplane anywhere. And the RStudio principle provides support! Runways, communication, community, and other solutions that renders your life as a pilot much easier. It offers not just the infrastructure but a hub for the ar that friend can interact with.

To start RStudio, double-click ~ above the RStudio icon. Launching RStudio likewise launches R, and also you will most likely never open R by itself.


Notice the default panes:

Console (entire left)Environment/History (tabbed in top right)Files/Plots/Packages/Help (tabbed in lower right)

We i will not ~ click through this all immediately but us will become familiar with an ext of the options and capabilities transparent the next couple of days.

Something an important to understand now is the you deserve to make everything you watch BIGGER by going to the navigation pane: view > Zoom In. Learn these keyboard shortcuts; being able to view what you’re inputting will assist avoid typos & assist us assist you.

An important an initial question: where are we?

If you’ve have opened RStudio for the an initial time, you will do it be in your house directory. This is noted by the ~/ at the peak of the console. You can see as well that the papers pane in the reduced right reflects what is in the Home magazine where friend are. You can navigate around within that papers pane and also explore, however note that you won’t readjust where you are: even as girlfriend click through you’ll still it is in Home: ~/.


We room going to have actually our first experience with R with RMarkdown, for this reason let’s do the following.

3.3 Intro to RMarkdown

An RMarkdown document is a plain text paper that permit us to create code and also text together, and also when the is “knit,” the code will certainly be evaluated and also the message formatted so that it creates a reproducible report or paper that is nice to check out as a human.

This is really an important to reproducibility, and also it also saves time. This record will recreate your numbers for girlfriend in the same record where you space writing text. So no an ext doing analysis, saving a plot, pasting the plot right into Word, redoing the analysis, re-saving, re-pasting, etc.

This 1-minute video clip does the ideal job of presenting RMarkdown: What is RMarkdown?.

Now let’s endure this a little bit ourselves and then fine talk about it more.

3.3.1 create an RMarkdown file

Let’s execute this together:

File -> New document -> RMarkdown… (or conversely you deserve to click the environment-friendly plus in the height left -> RMarkdown).

Let’s title it “Testing” and also write ours name as author, climate click OK through the encourage Default output Format, which is HTML.


OK, very first off: by opening a file, we are seeing the 4th pane that the RStudio console, which here is a text editor. This allows us dock and also organize our documents within RStudio instead of having a bunch of different windows open (but there are alternatives to pop them out if the is what friend prefer).

Let’s have actually a look at this document — it’s no blank; there is part initial text is already listed for you. Let’s have actually a high-level look v of it:

The top component has the Title and also Author us provided, and also today’s date and also the output form as one HTML file like we selected above.There are white and also grey sections. These are the 2 key languages that comprise an RMarkdown file.Grey sections are R codeWhite sections room Markdown textThere is black and blue text (we’ll disregard the green text because that now).


3.3.2 Knit her RMarkdown file

Let’s go ahead and “Knit” by click the blue yarn in ~ the height of the RMarkdown file.It’s going come ask united state to conserve first, I’ll name mine “testing.Rmd.” note that this is by default going to conserve this paper in her home brochure /~. Since this is a testing file this is good to conserve here; we will get much more organized about where we save files really soon. Once you click Save, the knit process will be able to continue.

OK so exactly how cool is this, we’ve simply made one html file! This is a single webpage the we room viewing locally on our own computers. Web this RMarkdown record has rendered — we also say formatted — both the Markdown text (white) and also the R code (grey), and the it likewise executed — we likewise say ran — the R code.

Let’s have a look in ~ them side-by-side:


Let’s take it a deeper look at these two files. So much of discovering to password is in search of patterns. Activity

Introduce you yourself to the human being sitting next to you. Talk about what you notification with these two files. Then we will have a brief share-out v the group. (5 mins)

3.3.3 Markdown text

Let’s look an ext deeply at the Markdown text. Markdown is a formatting language for plain text, and also there are only a handful of rule to know.

Notice the syntax for:

headers through # or ##bold with **

To see more of the rules, let’s look in ~ RStudio’s integrated reference. Let’s perform this: help > Markdown rapid Reference

There room also good cheatsheets easily accessible online.

3.3.4 R code

Let’s look at the R password that we see executed in our knitted document.

We view that:

summary(cars) produce a table through information about carsplot(pressure) produces a plot v information around pressure

There space a pair of points going top top here.

summary() and also plot() are called functions; they are operations and also these persons come mounted with R. We speak to functions set up with R base R functions. This is similar to Excel’s functions and also formulas.

cars and pressure are small datasets that come installed with R.

We’ll talk an ext about functions and data shortly.

3.3.5 password chunks

R code is composed in code chunks, which room grey.

Each that them start with 3 backticks and also r label that signify there will be R password following. Anything within the base ( ) is instructions because that RMarkdown about that code to run. Because that example:

the first chunk labeled “setup” says include=FALSE, and we don’t see it included in the HTML document.the 2nd chunk labeling “cars” has no extr instructions, and also in the HTML file we check out the code and the review of that password (a an overview table)the third chunk labeled “pressure” says echo=FALSE, and in the HTML document we perform not check out the password echoed, we just see the plot once the code is executed.

Aside: password chunk labels that is possible to brand your password chunks. This is to help us navigate between them and also keep lock organized. In our example Rmd, our three chunks say r together the language, and also have a brand (setup, cars, pressure).Labels room optional, but will become powerful as you become a powerful R user. However if you label your code chunks, you should have unique labels.

Notice exactly how the native FALSE is every capitals. Capitalization problem in R; TRUE/FALSE is something the R deserve to interpret as a binary yes/no or 1/0.

There are many an ext options obtainable that we will comment on as us get much more familiar through RMarkdown. brand-new code chunks

We can develop a new chunk in your RMarkdown an initial in among these ways:

click “Insert > R” in ~ the optimal of the editor pane (with the green plus and green box)type the by hand:```r```copy-paste an existing chunk — but remember come relabel the something unique! (we’ll explore this much more in a moment)

Aside: doesn’t need to be just R, various other languages supported.

Let’s develop a brand-new code chunk in ~ the end of our document.

Now, let’s create some code in R. Let’s say we desire to view the an introduction of the press data. I’m going to press get in to to include some extra carriage returns since sometimes I discover it more pleasant to look at my code, and it helps in troubleshooting, i m sorry is often around identifying typos. R lets you usage as much whitespace as you would like.

We have the right to knit this and see the review of pressure. This is the very same data that we see through the plot simply above.

Troubleshooting: go trying come knit your document produce one error? start by looking at your password again. Perform you have both open up ( and close ) parentheses? space your password chunk fences (```) correct?

3.4 R code in the Console

So far we have actually been telling R come execute our password only when we knit the document, but we can also write code in the Console to communicate with the live R process.

The Console (bottom left pane the the RStudio IDE) is whereby you can interact with the R engine and also run password directly.

Let’s type this in the Console: summary(pressure) and also hit enter. We view the pressure summary table returned; the is the same details that we saw in our knitted html document. Through default, R will display screen (we likewise say “print”) the executed result in the Console

We can also do math together we have the right to in Excel: form the following and press enter.


3.4.1 Error messages

When you password in R or any kind of language, you will encounter errors. Us will discuss troubleshooting tips an ext deeply tomorrow in Collaborating & gaining help; below we will just acquire a little comfortable through them. R error messages

Error messages room your friends.

What perform they look like? okay demo keying in the Console summary(pressur)

summary(pressur)#> Error in summary(pressur): object 'pressur' not found
Error messages space R’s means of saying the it didn’t know what you said. This is like in English when we speak “What?” or “Pardon?” and like in talked language, part error messages are much more helpful than others. Favor if someone claims “Sorry, could you repeat that last word” rather than only “What?”

In this case, R is saying “I didn’t recognize pressur.” R tracks the datasets it has available as objects, and also any extr objects the you make. Pressur is not among them, therefore it states that the is no found.

The an initial step of coming to be a skilled R user is to relocate past the exasperation the “it’s no working!” and also read the error message. Errors will be much less frustrating with the attitude that most likely the problem is her typo or misuse, and not that R is broken or hates you. Review the error message to find out what is wrong. RMarkdown error messages

Errors can also occur in RMarkdown. I stated a moment earlier that you label your code chunks, they need to be unique. Let’s see what wake up if not. If i (re)name our summary(pressure) chunk to “cars,” i will see an error as soon as you try to knit:

processing file: testing.RmdError in parse_block(g<-1>, g<1>, params.src) : duplicate brand 'cars'Calls: ... Process_file -> split_file -> lapply -> funny -> parse_blockExecution haltedThere room two things to focus on here.

First: This error blog post starts out in a pretty cryptic way: ns don’t expect you to know what parse_block(g<-1>... Means. But, expecting the the error blog post is really trying to assist me, I proceed scanning the post which enables me to determine the problem: duplicate brand "cars".

Second: This error is in the “R Markdown” tab ~ above the bottom left the the RStudio IDE; that is not in the Console. The is because when RMarkdown is knitted, it in reality spins increase an R workspace independently from what is passed to the Console; this is just one of the methods that R Markdown enables reproducibility since it is a self-contained circumstances of R.

You can click back and forth in between the Console and also the R Markdown tab; this is something to look out for together we continue. Us will job-related in the Console and R Markdown and will discuss strategies for where and also how to job-related as us go. Let’s click ago to Console now.

3.4.2 to run RMarkdown password chunks

So much we have written code in our RMarkdown record that is executed as soon as we knit the file. Us have likewise written code directly in the Console that is executed as soon as we push enter/return. Additionally, we deserve to write code in one RMarkdown password chunk and also execute the by sending out it right into the Console (i.e. we have the right to execute password without web the document).

How execute we perform it? there are number of ways. Let’s carry out each of these with summary(pressure).

First approach: send R password to the Console.This strategy involves selecting (highlighting) the R code only (summary(pressure)), not any type of of the backticks/fences indigenous the code chunk.

Troubleshooting: If you see Error: attempt to usage zero-length variable surname it is since you have accidentally highlighted the backticks in addition to the R code. Shot again — and also don’t forget the you can include spaces within the password chunk or make her RStudio conference bigger (View > Zoom In)!

Do this by choosing code and also then:

copy-pasting into the Console and also press enter/return.clicking ‘Run’ native RStudio IDE. This is accessible from:the bar above the file (green arrow)the menu bar: password > run Selected Line(s)keyboard shortcut: command-return

Second approach: run complete code chunk.Since we are already grouping pertinent code together in chunks, the reasonable the we might want to operation it all with each other at once.

Do this by placing your curser within a password chunk and then:

clicking the tiny black down arrowhead next to the Run environment-friendly arrow and also selecting Run current Chunk. Notification there are likewise options to operation all chunks, operation all chunks over or below…

3.4.3 creating code in a record vs. Console

When have to you create code in a file (.Rmd or .R script) and also when have to you create it in the Console?

We write things in the record that are important for our analysis and that we want to keep for reproducibility; we will be law this throughout the workshop to give you a an excellent sense the this. A document is additionally a good way because that you to take it notes to yourself.

The Console is great for doing fast calculations like 8*22.3, testing functions, because that calling help pages, for installing packages. We’ll check out these points next.

3.5 R functions

Like Excel, the power of R comes no from doing small operations personally (like 8*22.3). R’s power comes from being may be to operate on whole suites of numbers and also datasets.

And additionally like Excel, few of the best power in R is the there are built-in functions the you deserve to use in your analyses (and, together we’ll see, R users can quickly create and also share functions, and also it is this open source developer and contributor ar that makes R so awesome).

R has actually a mind-blowing repertoire of built-in functions that are offered with the very same syntax: function name through parentheses about what the role needs to carry out what that is claimed to do.

We’ve seen a couple of functions already: we’ve viewed plot() and also summary().

Functions always have the same structure: a name, parentheses, and arguments the you deserve to specify. Function_name(arguments). As soon as we speak about duty names, we use the convention function_name() (the name v empty parentheses), however in practice, we usually supply arguments to the function function_name(arguments) so that it works on part data. Let’s check out a few more function examples.

Like in Excel, there is a duty called “sum” to calculation a total. In R, it is order lowercase: sum(). (As I kind in the Console, R will administer suggestions).

Let’s use the sum() function to calculate the amount of all the ranges traveled in the car dataset. We specify a solitary column of a dataset making use of the $ operator:

Another duty is simply called c(); i beg your pardon combines worths together.

So let’s develop a new R password chunk. And we’ll write:

c(1, 7:9)
## <1> 1 7 8 9Aside: some attributes don’t call for arguments: try typing date() into the Console. Be certain to kind the parentheses (date()); otherwise R will certainly return the code behind the date() duty rather than the calculation that you want/expect.

So you deserve to see that this combine these worths all right into the exact same place, i beg your pardon is referred to as a vector here. Us could likewise do this v a non-numeric examples, which are referred to as “strings”:

c("San Francisco", "Cal Academy")
## <1> "San Francisco" "Cal Academy"We should put quotes around non-numeric worths so the R walk not translate them as an object. That would certainly get grumpy and also give us an error the it did no have an item by these names. And also you watch that R likewise prints in quotes.

We can also put attributes inside of other functions. This is called nested functions. Once we include another duty inside a function, R will evaluate them indigenous the inside-out.

c(sum(cars$dist), "San Francisco", "Cal Academy")
## <1> "2149" "San Francisco" "Cal Academy"So R first evaluated the sum(cars$dist), and also then evaluate the c() statement.

This example demonstrates another an essential idea in R: the idea that classes. The calculation R provides is referred to as a vector, and also everything within that vector has to be the same type of thing: us can’t have actually both numbers and words inside. So below R is may be to very first calculate sum(cars$dist) together a number, but then c() will rotate that number into a text, called a “string” in R: you watch that the is in quotes. That is no longer a numeric, that is a string.

This is a huge difference in between R and Excel, because Excel allows you to have a mix the text and numeric in the same column or row. R’s means can feeling restrictive, however it is also an ext predictable. In Excel, you can have a single number in your whole sheet that Excel is silently interpreting as text so the is causing errors in the analyses. In R, the whole column will certainly be the same type. This deserve to still reason trouble, yet that is wherein the great practices that us are discovering together can assist minimize that sort of trouble.

We will certainly not discuss classes or work with nested functions an extremely much in this workshop (the tidyverse design and pipe operator do nested features less prevalent). Yet we wanted to introduce them to you because they will be something girlfriend encounter together you continue on her journey v R.

3.6 aid pages

Every function available to you should have actually a help page, and also you access it by keying a question mark preceding the role name in the Console.

Let’s have actually a depths look at the arguments for plot(), using the aid pages.

?plotThis opens up the correct page in the help Tab in the bottom-right the the RStudio IDE. You can also click ~ above the tab and form in the role name in the search bar.

All aid pages will have actually the exact same format, below is how I look in ~ it:

The assist page tells the name of the package in the peak left, and broken down right into sections:

Help pages- Description: an extended description the what the function does.- Usage: The disagreements of the function and your default values.- Arguments: one explanation that the data each argument is expecting.- Details: any kind of important details to be aware of.- Value: The data the function returns.- see Also: any type of related features you might find useful.- Examples: Some instances for exactly how to usage the function.

When i look in ~ a aid page, I start with the summary to view if i am in the right ar for what I should do. Analysis the description for plot lets me know that yup, this is the duty I want.

I next look in ~ the usage and arguments, which offer me a an ext concrete view into what the role does. Plot requires disagreements for x and also y. Yet we passed just one discussion to plot(): us passed the cars dataset (plot(cars)). R is may be to recognize that it should use the two columns in the dataset as x and also y, and also it go so based on order: the very first column “speed” becomes x and the 2nd column “dist” i do not care y. The ... Method that there are plenty of other debates we can pass come plot(), which we should expect: i think we deserve to all agree that it would be nice to have actually the alternative of do this number a little an ext beautiful and also compelling. Glancing at several of the arguments, we deserve to understand below to be about the format of the plots.

Next, I usually scroll under to the bottom come the examples. This is where I have the right to actually see how the function is used, and I can additionally paste those instances into the Console to check out their output. Let’s try it:


3.7 Commenting

I’ve been functioning in the Console to highlight working interactively through the live R process. Yet it is most likely that you might want come write several of these things as notes in your R Markdown file. That’s great!

But you might not want every little thing you form to be run as soon as you knit her document. For this reason you have the right to tell R no to run something by “commenting the out.” This is done through one or an ext pound/hash/number signs: #. For this reason if I wanted to compose a keep in mind to myself about using ? to open up the assist pages, I would certainly write this in my R Markdown code chunk:

RStudio color-codes comment as eco-friendly so lock are easier to see.

Notice that my convention is come use 2 ##’s for my notes, and only one because that the code that i don’t want to run now, yet might desire to run various other times. I prefer this convention due to the fact that in RStudio you have the right to uncomment/recomment multiple present of code at as soon as if friend use just one #: perform this by going come the food selection Code > Comment/Uncomment present (keyboard faster way on mine Mac: Shift-Command-C).

Aside: Note likewise that the hashtag # is used in different ways in Markdown and also in R. In R, a hashtag suggests a comment that will certainly not it is in evaluated. You have the right to use as plenty of as girlfriend want: # is equivalent to ######. In Markdown, a hashtag suggests a level the a header. And the number you usage matters: # is a “level one header,” an interpretation the greatest font and the height of the hierarchy. ### is a level three header, and will show up nested below the # and also ## headers.

3.8 Assigning objects with

In Excel, data space stored in the spreadsheet. In R, they space stored in objects. Data can be a variety of formats, for instance numeric and strings favor we just talked about.

We will be working through data objects the are rectangle-shaped in shape. If they only have actually one pillar or one row, lock are additionally called a vector. And we assign these objects names.

This is a large difference through Excel, where you usually recognize data by its ar on the grid, favor $A1:D$20. (You can do this through Excel through naming varieties of cells, but many human being don’t perform this.)

We assign things a surname by creating the name together with the assignment operator . Let’s shot it by producing a variable dubbed “x” and also assigning it come 10.

When I see this written, in mine head i hear “x gets 10.”

When we send this to the Console (I execute this v Command - Enter), an alert how nothing is printed in return. This is since when we assign a variable, by default that is no returned. We have the right to see what x is by keying it in the Console and also hitting enter.

We can additionally assign objects with existing objects. Let’s say we want to have the street traveled by dare in its very own variable, and also multiply by 1000 (assuming this data room in km and also we want m).

Object names have the right to be whatever you want, although the is way to no name objects by features that you recognize exist, for example “c” or “false.” Additionally, castle cannot begin with a digit and cannot save spaces. Various folks have different conventions; you will certainly be wise to take on a convention for demarcating native in names.


3.9 R Packages

So much we’ve been utilizing a pair functions that are had with R out-of-the-box such together plot() and c(). Us say that these attributes are from “Base R.” But, one of the amazing things around R is that a large user neighborhood is always creating new functions and packages that expand R’s capabilities.

In R, the an essential unit the shareable code is the package. A package bundles together code, data, documentation (including to develop the help pages), and also tests, and is simple to share v others. They rise the power of R by improving existing base R functionalities, or by adding brand-new ones.

The classic place come download packages is from CRAN, the substantial R save on computer Network, which is whereby you download R. CRAN is prefer a grocery store or iTunes because that vetted R packages.

Aside: friend can also install packages native katifund.org; watch devtools::install_katifund.org()

You don’t have to go come CRAN’s website to download packages, this can be completed within R using the command install.packages("package-name-in-quotes").

3.9.1 exactly how do you know what packages/functions exist?

How execute you understand what packages exist? Well, just how do you recognize what movie exist on iTunes? You discover what’s obtainable based on your needs, understanding the community roughly you. We’ll present you to number of really an effective packages that we work-related with and help you find others that might be of interest to you. provide instances here

3.9.2 installation R Packages

Let’s install number of packages the we will certainly be using shortly. Compose this in your R Markdown file and run it:

Now we’ve mounted the package, however we must tell R that we are going to use the functions within the usethis package. We carry out this by making use of the function library().

In mine mind, this is analogous to needing to wire your home for electricity: this is something you carry out once; this is install.packages. However then you have to turn on the lights every time you need them (R Session).

It’s a nice convention to perform this ~ above the very same line as your commented-out install.packages() line; this makes it easier for who (including friend in a future time or computer) to download the parcel easily.

When usethis is successfully attached, you i will not ~ get any kind of feedback in the Console. So unless you obtain an error, this functioned for you.

Now let’s carry out the exact same with the right here package.

here likewise successfully attached yet isn’t quiet about it. That is a “chatty” package; when we attached that did so, and responded v the filepath where we are working from. This is the very same as ~/ i m sorry we observed earlier.

Finally, stop install the tidyverse package.

“The tidyverse is a systematic system the packages because that data manipulation, exploration and also visualization that share a common design philosophy.” - Joseph Rickert: What is the tidyverse?, RStudio community Blog.

This might take a little while come complete.

3.10 katifund.org short intro & config

Before us break, we space going to set up Git and katifund.org i beg your pardon we will be using in addition to R and RStudio for the rest of the workshop.

Before we perform the setup configuration, let me take it a moment to talk about what Git and also katifund.org are.

It help me come think the katifund.org prefer Dropbox: you determine folders for katifund.org to ‘track’ and also it syncs them come the cloud. This is good first-and-foremost due to the fact that it makes a back-up copy of her files: if your computer dies not all of your occupational is gone. However with katifund.org, you have to be much more deliberate about when syncs space made. This is since katifund.org saves these as different versions, v information around who added when, line-by-line. This makes teamwork easier, and also it permits you to roll-back to various versions or contribute to others’ work.

git will certainly track and also version her files, katifund.org shop this online and permits you to collaborate v others (and yourself). Although git and also katifund.org space two various things, distinctive from every other, we deserve to think of them together a bundle due to the fact that we will always use castle together.

3.10.1 Configure katifund.org

This collection up is a one-time thing! You will certainly only need to do this once per computer. Fine walk with this together. In a browser, go to katifund.org.com and also to her profile page as a reminder.

You will must remember her katifund.org username, the email resolve you created your katifund.org account with, and your katifund.org password.

We will be making use of the use_git_config() function from the usethis parcel we simply installed. Due to the fact that we currently installed and also attached this package, kind this right into your Console:

## use_git_config duty with my username and email as argumentsuse_git_config(user.name = "jules32", user.email = "jules32
If you watch Error in use_git_config() : could not find duty "use_git_config" please operation library("usethis")

3.10.2 Ensure that Git/katifund.org/RStudio space communicating

We space going come go with a few steps to ensure the Git/katifund.org are interacting with RStudio RStudio: new Project

Click on brand-new Project. There are a couple of different ways; friend could likewise go to document > brand-new Project…, or click the little green + through the R box in the top left.also in the document menu).

* select Version Control

* select Git

Since we are using git.


Do you see what ns see?


If yes, hooray! Time for a break!

If no, we will help you troubleshoot.

Double examine that katifund.org username and also email are correctwhich git (Mac, Linux, or anything running a bash shell)where git (Windows, once not in a bash shell) Configure git from Terminal

If usethis fails, the following is the classic technique to configuring git. Open the Git Bash routine (Windows) or the Terminal (Mac) and form the following:

# display screen your variation of git git --version # change USER v your katifund.org user account git config --global user.name USER # replace NAME
EMAIL.EDU # list your config to check user.* variables collection git config --listThis will configure git with an international (--global) commands, which method it will use ‘globally’ come all her future katifund.org repositories, quite than only to this one now. Note because that PCs: We’ve seen pc failures exactly themselves by act the above but omitting --global. (Then friend will should configure katifund.org because that every repo girlfriend clone yet that is fine because that now). Troubleshooting

All troubleshooting start with analysis Happy Git through R’s RStudio, Git, katifund.org Hell troubleshooting chapter. New(ish) Error top top a Mac

We’ve likewise seen the following errors indigenous RStudio:

error key does not contain a ar --global terminaland

fatal: no in a git directoryTo resolve this, walk to the Terminal and also type:which git


Look in ~ the filepath the is returned. Walk it speak anything to execute with Apple?

-> If yes, climate the Git girlfriend downloaded isn’t installed, you re welcome redownload if necessary, and also follow instructions come install.

-> If no, (in the instance image, the filepath does not say anything with Apple) then proceed below:

In RStudio, navigate to: tools > worldwide Options > Git/SVN.


Does the “Git executable” filepath complement what the url in Terminal says?


If not, click the browser button and navigate there.

See more: Top10 Free Intro No Text Minecraft Intro No Text Minecraft #1

Note: on my laptop, even though ns navigated to /usr/local/bin/git, the then immediately redirect because /usr/local/bin/git to be an alias on mine computer. The is fine. Click OK.