2013-02-11 11 views
6

Utilizzando la funzione fractions nella massa biblioteca, posso convertire un numero decimale in una frazione:Ottenere numeratore e denominatore di una frazione in R

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

Ma allora come estraggo il numeratore e il denominatore? L'aiuto per fractions menziona un attributo "fracs", ma non riesco ad accedervi.

risposta

7

Una rappresentazione dei caratteri della frazione viene memorizzato in un attributo:

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

@BonnieScott Bene, come Juba ha dimostrato, è abbastanza facile per scrivere la propria funzione di tirarli fuori con. – joran

4

è possibile ottenere l'attributo fracs dalla frazione oggetto seguente modo, ma è solo la rappresentazione carattere della vostra frazione:

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

Se si vuole accedere ai valori numeratore e denominatore, si può solo dividere la stringa con la seguente funzione:

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

che è possibile utilizzare in questo modo:

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