2

我想对数据进行排序

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 的排序数据。如果我们有一个数据框,这是非常简单的任务。

谢谢。

4

2 回答 2

3

使用 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
于 2013-07-22T12:31:34.237 回答
0

你可以试试这样的

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), ]
于 2013-07-22T12:25:13.313 回答