【发布时间】:2021-01-21 00:08:49
【问题描述】:
This answer 警告来自which 的一些可怕行为。具体来说,如果您获取任何数据框,例如df <- data.frame(x=1:5, y=2:6),然后尝试使用评估为which(FALSE)(即integer(0))的内容对其进行子集化,那么您将删除数据集中的每一列。为什么是这样?为什么删除与integer(0) 对应的所有列会删除所有内容?什么都不删除不应该破坏一切。
例子:
>df <- data.frame(x=1:5, y=2:6)
>df
x y
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
>df <- df[,-which(FALSE)]
>df
data frame with 0 columns and 5 rows
【问题讨论】: