鉴于下面的R代码,我想知道如何创建两列,使得当“x”在.4和之间有界限时,LR的16个最大值及其对应的xs。 8 显示? ( x 的列& 相应LR的列)?
n=100
h=60
x=seq(0,1,by=0.02)
LR <- dbeta(x,h+1,n-h+1)/max(dbeta(x,h+1,n-h+1))
我正在尝试以下操作,但无法创建两列:
head(sort(LR[which(x<=.8 & x>=.4)], decreasing=TRUE), 16)
答案 0 :(得分:5)
您可以使用sort
在您的条件下对矢量LR
的子集进行排序:
sort(LR[x <= .8 & x >= .4],decreasing = TRUE)[1:16]
答案 1 :(得分:1)
以下是使用dplyr
的方法:
library(dplyr)
df <- data.frame(x, LR)
df1 <- df %>%
filter((x >= 0.4) & (x <= 0.8)) %>%
top_n(16, LR)
# to save the data
write.csv(df1, "abc.csv", row.names=FALSE)