防止单列自动转换为矢量

Nil*_*ils 16 r dataframe

我有一个这样的数据框:
df = data.frame(a=1:3, b=2:4, c=3:5)

我正在使用类似于以下内容的方式从该数据框中选择列:
df[, c(T, F, T)]

只要至少有两列要返回,这样就可以正常工作; 但是,如果我这样做,例如:
df[, c(T, F, F)]

...我突然只得到一个向量而不是data.frame.

通常这很好(甚至是期望的),但是因为我需要在稍后的某个时候将结果作为data.frame,这完全会弄乱我的脚本.

有没有办法可以阻止R自动转换为单列选择的向量?

Fhn*_*oag 32

这个很简单.附加, drop = FALSE到子集.

例如

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

也适用于矩阵.