我想编写一个R函数,为我提供观察值的第10个百分点的值。我想将此功能与sapply
一起使用。像mean
一样,sapply
是
sapply(1 : n, function(i) mean(a1))
例如我有100个值,而第10个百分位数是10,我想打印第10行上的值。
X
45
80
70
56
78
78
56
90
35
190
..........最多100个值
所需的输出:在第10行打印值,即以上列中的190
我希望函数计算我的100个观测值的前10个百分位数,然后再打印该位置上的值。
答案 0 :(得分:0)
所需的功能将如下所示:
give_quant_value <- function(vec, quantile) {
return(vec[quantile(1:length(vec),p=quantile,type=1)])
}
其中
-vec
是感兴趣的媒介
-quantile
是感兴趣的分位数
证明:
set.seed(42)
a1 <- rnorm(100)
give_quant_value(a1, 0.1)
-0.062714099052421
在终端上键入quantile
时,您可能会了解有关?quantile
功能的更多信息
答案 1 :(得分:0)
这是我写的一个简单函数:它将数据作为data.frame
对象。
select_percentile<-function(df,n){
df<-df
nth<-(n/nrow(df))*100
return(df[nth,])
}
使用其他答案中的数据:
set.seed(42)
a1 <- rnorm(100)
df1<-as.data.frame(a1)
select_percentile(df1,10)
结果:
#[1] -0.0627141