dataframe [, - 1]和dataframe [-1]是否相同?

CAr*_*old 11 r dataframe

很抱歉,这似乎是一个非常愚蠢的问题,但dataframe[ ,-1]dataframe[-1]相同的,并且它的所有数据类型的工作?

为什么他们是一样的

flo*_*del 25

几乎.

[-1]使用data.frame是一个列表的事实,所以当你这样做时dataframe[-1],返回另一个没有第一个元素(即列)的data.frame(列表).

[ ,-1]使用data.frame是二维数组的事实,所以当你这样做时,dataframe[, -1]你得到的子数组不包括第一列.

先验,它们听起来是一样的,但第二种情况也默认尝试减少它返回的子阵列的维度.因此,根据您的尺寸,您dataframe可能会获得data.frame或vector,例如,请参阅:

> data <- data.frame(a = 1:2, b = 3:4)
> class(data[-1])
[1] "data.frame"
> class(data[, -1])
[1] "integer"
Run Code Online (Sandbox Code Playgroud)

您可以drop = FALSE用来覆盖该行为:

> class(data[, -1, drop = FALSE])
[1] "data.frame"
Run Code Online (Sandbox Code Playgroud)