On Sat, 7 Jan 2023 17:29:35 +0100 Sigbert Klinke <sigb...@wiwi.hu-berlin.de> wrote:
> > x <- (0:7)/7 > > > MASS::fractions(x) > > [1] 0 1/7 2/7 3/7 4/7 5/7 6/7 1 > > > gmp::as.bigq(x) > > Big Rational ('bigq') object of length 8: > > [1] 0 > 2573485501354569/18014398509481984 2573485501354569/9007199254740992 > > [4] 7720456504063707/18014398509481984 > 2573485501354569/4503599627370496 6433713753386423/9007199254740992 > > [7] 7720456504063707/9007199254740992 1 That's a consequence of the way fractions are internally represented inside most modern processors. In short, gmp::as.bigq takes the red pill and shows you the reality as it is (all fractions have a limited number of significant digits -- 52 binary digits -- and are required to have a denominator that's a power of two), while MASS::fractions tries to guess what the original number might have been before an imprecise approximation of k/7 had been computed. (Since 7 is not a power of 2, only 0 and 1 have an exact representation in your example.) For more information, see R FAQ 7.31: https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f What do you need the fractions for? -- Best regards, Ivan ______________________________________________ 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.