根据较高的分位数

时间:2015-04-30 10:39:15

标签: r subset

我目前正试图遍历我的数据,并且通过确定该值是否落在上分位数之上,我想要对数据进行子集,以便仅选择那些高于上分位数的那些数据。为了证明我的意思: -

vector <- c()
df <- as.integer(read.table(text = " 88  72  92  38  20  16   8  14   8   4   4   8   6   4   6   2  54 272   2   6"))
for(i in 1:length(df)){
current.bin <- i
window.size <- 5
window <- df[current.bin-window.size : current.bin+window.size]
upper.quant <- quantile(window, 0.95)
if(df[current.bin] > upper.quant){
vector[i] <- current.bin
}
}
str(vector)
 int [1:18] NA NA 3 4 NA NA NA NA NA NA ...

因此,当我循环时,我希望它查看之前和之后的值(一个5的窗口)并使用它来确定上分位数,然后再决定它当前正在查看的值是否下降高于或高于。之后,我想使用current.bin值,然后使用它来指定我想要提取的行,从另一个数据框中选择数据。但是,当我查看生成的向量时,它比我df中的值的数量少2。我无法弄清楚为什么会这样,有什么想法吗?

另外,我如何使用高于上分位数的值的位置来选择数据?以df为例,我希望它能够实现: -

df <- df["row positions using values in vector", ]

0 个答案:

没有答案