2013-02-11 2 views
6

Используя функцию fractions в библиотеке MASS, я могу преобразовать десятичное в фракцию:Получение числитель и знаменатель дроби в R

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

Но тогда, как извлечь числитель и знаменатель? Справка для fractions упоминает атрибут «fracs», но я не могу получить доступ к нему.

ответ

7

Символ представление фракции хранится в атрибуте:

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

@BonnieScott Ну, как показано Джуба, это довольно легко написать свою собственную функцию, чтобы вытащить их с. – joran

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 
Смежные вопросы