我想对数据进行排序
z=as.ffdf(data.frame(w=c(4,1,2,5,7,8,65,3,2,9), x=c(12,1,3,5,65,3,2,45,34,11),y=1:10))
我需要基于列 w,x 的排序数据。如果我们有一个数据框,这是非常简单的任务。
谢谢。
我想对数据进行排序
z=as.ffdf(data.frame(w=c(4,1,2,5,7,8,65,3,2,9), x=c(12,1,3,5,65,3,2,45,34,11),y=1:10))
我需要基于列 w,x 的排序数据。如果我们有一个数据框,这是非常简单的任务。
谢谢。
使用 ff 包中的 ffdforder,这将返回一个 ff_vector,您可以使用它来索引您的 ffdf,而不会出现 RAM 问题。
require(ff)
z=as.ffdf(data.frame(w=c(4,1,2,5,7,8,65,3,2,9), x=c(12,1,3,5,65,3,2,45,34,11),y=1:10))
idx <- ffdforder(z[c("w","x")])
zordered <- z[idx, ]
zordered
你可以试试这样的
require(ffbase)
z <- as.ffdf(data.frame(w=c(4,1,2,5,7,8,65,3,2,9),
x=c(12,1,3,5,65,3,2,45,34,11),y=1:10))
z[order(z$w[], z$x[]), ]
## w x y
## 2 1 1 2
## 3 2 3 3
## 9 2 34 9
## 8 3 45 8
## 1 4 12 1
## 4 5 5 4
## 5 7 65 5
## 6 8 3 6
## 10 9 11 10
## 7 65 2 7
您可以在不使用 RAM的情况下fforder
订购您的产品。ffdf
感谢@jwijffels
z[fforder(z$w, z$x), ]