Prevent automatic conversion of single column to vector
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?
This one is pretty simple. Append , drop = FALSE to your subsetting.
df[, c(T, F, F), drop = FALSE]
Also works for matrices.
Also without the comma, i.e. df[c(T,F,F)], returns a dataframe but it sounds like you have cases where the new dataframe can have one or more columns. So use the drop option abovee