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?

Answers


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

E.g.

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


Need Your Help

How can I detect .NET 3.5 in WiX?

.net wix version

I'm trying to detect which version .NET is installed using WiX. I've tried:

Move up character displayed inline

css layout positioning

I have the following markup for breadcrumbs menu: