Convert data.frame column to a vector? Convert data.frame column to a vector? r r

Convert data.frame column to a vector?


I'm going to attempt to explain this without making any mistakes, but I'm betting this will attract a clarification or two in the comments.

A data frame is a list. When you subset a data frame using the name of a column and [, what you're getting is a sublist (or a sub data frame). If you want the actual atomic column, you could use [[, or somewhat confusingly (to me) you could do aframe[,2] which returns a vector, not a sublist.

So try running this sequence and maybe things will be clearer:

avector <- as.vector(aframe['a2'])class(avector) avector <- aframe[['a2']]class(avector)avector <- aframe[,2]class(avector)


There's now an easy way to do this using dplyr.

dplyr::pull(aframe, a2)


You could use $ extraction:

class(aframe$a1)[1] "numeric"

or the double square bracket:

class(aframe[["a1"]])[1] "numeric"