子集化data.frame或vector时,无论调用多少次,都可以保证相同的子集调用返回相同的值/行顺序?
最佳答案
对于矢量,绝对是。从有关子集的文档中:
对于普通向量,结果只是x[subset & !is.na(subset)]
。
对于数据帧,这似乎是正确的,因为子集只是作为向量有效地应用于每一行。例如,以下内容将始终仅返回来自b
的d
列的条目,其相应的a
值大于5。不会发生行的重新排序。
d <- data.frame(a=1:10, b=20:29)
subset(d, a>5, b)