Convert a dataframe to a vector (by rows)

Brani picture Brani · Mar 30, 2010 · Viewed 177.6k times · Source

I have a dataframe with numeric entries like this one

test <- data.frame(x = c(26, 21, 20), y = c(34, 29, 28))

How can I get the following vector?

> 26, 34, 21, 29, 20, 28

I was able to get it using the following, but I guess there should be a much more elegant way

X <- test[1, ]
for (i in 2:dim(test)[ 1 ]){
   X <- cbind(X, test[i, ])
   } 

Answer

teucer picture teucer · Mar 30, 2010

You can try as.vector(t(test)). Please note that, if you want to do it by columns you should use unlist(test).