Avi, On Mon, 2020-12-14 at 18:00 -0500, Avi Gross wrote:
Question: is the part that Ed Merkle is asking about the change in the expected NAME associated with the output? You are right: the question is about the name changing to "98%", when the returned object is the 97.5th percentile. It is indeed easy to set names=FALSE here. But there can still be a problem when the user sets options(digits=2), then a package calls quantile(x, .975) and expects an object that has a name of "97.5%". I think the easiest solution is to tell the user not to set options(digits=2), but it also seems like the "98%" name is not the best result. But Gabriel is correct that we would still need to consider how to handle something like quantile(x, 1/3). Maybe it is not a big enough issue to warrant changing anything. Ed He changed a sort of global parameter affecting how many digits he wants any compliant function to display. So when he asked for a named vector, the chosen name was based on his request and limited when possible to two digits. x <- 1:1000 temp <- quantile(x, .975) If you examine temp, you will see it is a vector containing (as it happens) a single numeric item (as it happens a double) with the value of 975. But the name associated is a character string with a "%" appended as shown below: str(temp) Named num 975 - attr(*, "names")= chr "98%" If you do not want a name attached to the vector, add an option: quantile(x, .975, names=FALSE) If you want the name to be longer or different, you can do that after. names(temp) [1] "98%" So change it yourself: temp 98% 975 names(temp) <- paste(round(temp, 3), "%", sep="") temp 975.025% 975 The above is for illustration with tabs inserted to show what is in the output. You probably do not need a name for your purposes and if you ask for multiple quantiles you might need to adjust the above. Of course if you wanted another non-default "type" of calculation, what Abby offered may also apply. -----Original Message----- From: R-devel <r-devel-boun...@r-project.org<mailto:r-devel-boun...@r-project.org>> On Behalf Of Abby Spurdle Sent: Monday, December 14, 2020 4:48 PM To: Merkle, Edgar C. <merk...@missouri.edu<mailto:merk...@missouri.edu>> Cc: r-devel@r-project.org<mailto:r-devel@r-project.org> Subject: Re: [Rd] quantile() names The "value" is *not* 975. It's 975.025. The results that you're observing, are merely the byproduct of formatting. Maybe, you should try: quantile (x, .975, type=4) Which perhaps, using default options, produces the result you're expecting? On Tue, Dec 15, 2020 at 8:55 AM Merkle, Edgar C. <merk...@missouri.edu<mailto:merk...@missouri.edu>> wrote: All, Consider the code below options(digits=2) x <- 1:1000 quantile(x, .975) The value returned is 975 (the 97.5th percentile), but the name has been shortened to "98%" due to the digits option. Is this intended? I would have expected the name to also be "97.5%" here. Alternatively, the returned value might be 980 in order to match the name of "98%". Best, Ed [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org<mailto:R-devel@r-project.org> mailing list https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org<mailto:R-devel@r-project.org> mailing list https://stat.ethz.ch/mailman/listinfo/r-devel Scanned by McAfee and confirmed virus-free. Find out more here: https://bit.ly/2zCJMrO [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel