I'm confused with when a value is treated as a variable, and when as a string in R. In Ruby and Python, I'm used to a string always having to be quoted, and an unquoted string is always treated as a variable. Ie. 

```
a["hello"] => a["hello"]
b = "hi"
a[b] => a["hi"]

```

But in R, this is not the case, for example

```
a$b < c(1,2,3)

```

b here is the value/name of the column, not the variable b.

```
c <- "b"
a$c => column not found (it's looking for column c, not b, which is the value of the variable c)

```

(I know that in this specific case I can use a[c], but there are many other cases. Such as `ggplot(a, aes(x=c))` - I want to plot the column that is the value of c, not with the name c)...

In other StackOverflow questions, I've seen things like quote, substitute etc mentioned. 

My question is: Is there a general way of "expanding" a variable and making sure the value of the variable is used, instead of the name of the variable? Or is that just not how things are done in R?