为什么它们有不同的结果?
我以为这两个对象指向 Petal.Length 的最小值相等,不是吗?
iris_dt <- as.data.table(iris)
x1 <- iris_dt[, .SD[which.min(Petal.Length)], by = Species]
x2 <- iris_dt[, .SD[min(Petal.Length)], by = Species]
identical(x1, x2)
# FALSE
请查看文档以了解min()
和which.min()
。这两个函数有不同的用途。虽然min()
为您提供实际的最小值,但另一方面,which.min()
返回最小值所在的索引向量。因此,它按设计工作。