子集化data.frame或vector时,无论调用多少次,都可以保证相同的子集调用返回相同的值/行顺序?

最佳答案

对于矢量,绝对是。从有关子集的文档中:


对于普通向量,结果只是x[subset & !is.na(subset)]


对于数据帧,这似乎是正确的,因为子集只是作为向量有效地应用于每一行。例如,以下内容将始终仅返回来自bd列的条目,其相应的a值大于5。不会发生行的重新排序。

d <- data.frame(a=1:10, b=20:29)
subset(d, a>5, b)

09-09 22:16
查看更多