1

我有一个非常大的数据文件,我的目标是在 V4 列中找到具有 5 个最大值的 5 行,所以我对数据进行了排序,得到了最大值,然后使用逻辑表达式试图找到整个行。问题是,即使我可以找到前 5 个值,逻辑表达式也只给了我 3 行而不是 5 行。

> h<-head(sort.int(d$V4, decreasing=T), 5)
> h
[1] 65506 39681 32306 29028 27535
> d[d$V4==h,]
             V1   V2 V3    V4                            V5
373135  1504839 1990  1 27535 77963;4;21;3;49;64;13;113;7;6
1365437 2141627 2010  1 39681         8;258;236;39;86;28;58
1797593 1822695 1992  1 32306                             0

那么,为什么我找不到 65506 和 29028 的对应行?有没有其他方法可以解决这个问题?

谢谢

4

1 回答 1

9

试试这个order()功能,它直接给你你想要的:

d[order(d$V4,decreasing=T)[1:5],]
于 2013-09-08T15:51:25.840 回答