R Error in x$ed : $ operator is invalid for atomic vectors

r

Solution

From the help file about `$` (See `?"$"`) you can read:

$ is only valid for recursive objects, and is only discussed in the section below on recursive objects.

Now, let's check whether `x` is recursive

> is.recursive(x)
[1] FALSE

A recursive object has a list-like structure. A vector is not recursive, it is an atomic object instead, let's check

> is.atomic(x)
[1] TRUE

Therefore you get an error when applying `$` to a vector (non-recursive object), use `[` instead:

> x["ed"]
ed 
 2 

You can also use `getElement`

> getElement(x, "ed")
[1] 2

Problem

Here is my code: ``` x<-c(1,2) x names(x)<- c("bob","ed") x$ed ``` Why do I get the following error? Error in x$ed : $ operator is invalid for atomic vectors

Original source