Prevent automatic conversion of single column to vector

dataframe, r

Solution

This one is pretty simple. Append `, drop = FALSE` to your subsetting.

E.g.

`df[, c(T, F, F), drop = FALSE]`

Also works for matrices.

Problem

I have a data frame like this: `df = data.frame(a=1:3, b=2:4, c=3:5)` I am selecting columns from that data frame using something akin to: `df[, c(T, F, T)]` This works fine as long as there are at least two columns to be returned; but, if I do this for example: `df[, c(T, F, F)]` ... I suddenly only get a vector instead of a data.frame. Normally this would be fine (or even desired), but since I need the result to be a data.frame at a later point, this completely messes up my scripts. Is there a way I can prevent R from doing this automatic conversion to a vector for single-column selections?

Original source