在R中得到分数的分子和分母

时间:2013-02-11 20:12:48

标签: r fractions

使用库MASS中的函数fractions,我可以将小数转换为分数:

> fractions(.375)
  [1] 3/8

但是如何提取分子和分母呢? fractions的帮助提到了属性“fracs”,但我似乎无法访问它。

2 个答案:

答案 0 :(得分:7)

分数的字符表示存储在属性中:

x <- fractions(0.175)
> strsplit(attr(x,"fracs"),"/")
[[1]]
[1] "7"  "40"

答案 1 :(得分:4)

您可以通过以下方式从分数对象中获取fracs属性,但它只是分数的字符表示形式:

x <- fractions(.375)
attr(x, "fracs")
# [1] "3/8"

如果要访问分子和分母值,可以使用以下函数拆分字符串:

getfracs <- function(frac) {
  tmp <- strsplit(attr(frac,"fracs"), "/")[[1]]
  list(numerator=as.numeric(tmp[1]),denominator=as.numeric(tmp[2]))
}

您可以这样使用:

fracs <- getfracs(x)
fracs$numerator
# [1] 3
fracs$denominator
# [1] 8