data.frame 过滤中有一个有趣的选项drop = TRUE
,请参见以下内容的摘录help('[.data.frame')
:
用法
类“data.frame”的 S3 方法
x[i, j, drop = ]
但是当我在data.frame上尝试它时,它不起作用!
> df = data.frame(a = c("europe", "asia", "oceania"), b = c(1, 2, 3))
>
> df[1:2,, drop = TRUE]$a
[1] europe asia
Levels: asia europe oceania <--- oceania shouldn't be here!!
>
我知道还有其他方法,例如
df2 <- droplevels(df[1:2,])
但是文档承诺以更优雅的方式来做到这一点,那么为什么它不起作用呢?它是一个错误吗?因为我不明白这怎么可能是一个功能......
编辑drop = TRUE
:我对降低向量的因子水平感到困惑,正如您在此处看到的那样。[i, drop = TRUE]
降低因子水平并[i, j, drop = TRUE]
没有,这不是很直观!!