2009-10-14 55 views
15

在数据框的列中找到最多n%的记录我有一个数据集,显示澳大利亚元兑美元每天大约20年的汇率。我有一个数据框中的数据,第一列是日期,第二列是汇率。这里有一个数据示例:如何使用R

>data 
      V1  V2 
1 12/12/1983 0.9175 
2 13/12/1983 0.9010 
3 14/12/1983 0.9000 
4 15/12/1983 0.8978 
5 16/12/1983 0.8928 
6 19/12/1983 0.8770 
7 20/12/1983 0.8795 
8 21/12/1983 0.8905 
9 22/12/1983 0.9005 
10 23/12/1983 0.9005 

我该如何去显示这些记录的前n%?例如。说我想看看汇率在数据集中所有汇率前5%的汇率下的日子和汇率?

回答

25

对于前5%:

n <- 5 
data[data$V2 > quantile(data$V2,prob=1-n/100),] 
+0

非常感谢! – 2009-10-14 03:00:19

+17

或保存一些输入:'subset(data,V2> quantile(V2,prob = 1 - n/100))' – hadley 2009-10-14 03:44:28

4

对于前5%也:

head(data[order(data$V2,decreasing=T),],.05*nrow(data))