It looks like a homework assignment. It also looks like you didn't read the documentation carefully enough. The 'len.out' argument in seq is solely for specifying the length of a sequence. The 'quantile' function omputes the empirical quantile of raw data in the vector 'x' at cumulative probabilit(y)(ies) given in the weights' argument, with interpolation I'm between. For example
quantile(x=c(2.3, 1, 7, -4, 1), weights=c(0.60,0.45)) 60% 45% 1.52 1.00 So to do what you want, there may be a canned function in R but you can always write your own. First we write one that takes values in 'x' and weights in 'w', vectors of the same length, and returns the quantile at cumulative probability 'p' for a 'p' of length 1. "%,%" <-paste0 qtl.one <- function(p, x, w) { ## argument checking bad <- length(x)!=length(w) bad <- bad || (length(p)!=1) bad <- bad || any(diff(x)<=0) if(bad) stop("Arguments 'x' and 'w' must be " %,% "vectors of the same legnth. Argument " %,% "'x' must be a vector of nondecreasing " %,% "values.") if(any(w<=0)||(sum(w)!=1)) stop("elements of 'w' must be positive " %,% "and sum to 1") ## the actual body of the function x[max(which(cumsum(w)<=p))] } Now we write a vectorization of the above that will work given a vector of 'p' cumulative probabilities: qtl <- function(p, x, w) { if(length(p)==1) ans <- qtl.one(p, x, w) if(length(p) >1) ans <- sapply(p, FUN=qtl.one, x=x,w=w) ans } ________________________________ From: "Izmirlian, Grant (NIH/NCI) [E]" <izmir...@mail.nih.gov> Date: Mon, Jan 29, 2024, 3:55 AM To: "Izmirlian, Grant (NIH/NCI) [E]" <izmir...@mail.nih.gov> Subject: Re: [R] DescTools::Quantile Greetings, I am having a problem with DescTools::Quantile (a function computing quantiles from weighted samples): # these sum to one probWeights = c( 0.0043, 0.0062, 0.0087, 0.0119, 0.0157, 0.0204, 0.0257, 0.0315, 0.0378, 0.0441, 0.0501, 0.0556, 0.06, 0.0632, 0.0648, 0.0648, 0.0632, 0.06, 0.0556, 0.0501, 0.0441, 0.0378, 0.0315, 0.0257, 0.0204, 0.0157, 0.0119, 0.0087, 0.0062, 0.0043 ) x = seq(-100,100,length.out=length(probWeights)) qtls <- DescTools::Quantile(x, weights=probWeights, probs=c(0.1,0.9)) cat("\nQuantiles:\n") print(qtls) Both quantiles are equal to 100! Is this function working or am I not using it correctly? Michael Meyer [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.