2013-02-11 23 views
6

Sử dụng chức năng fractions trong MASS thư viện, tôi có thể chuyển đổi một số thập phân cho một phần nhỏ:Bắt tử số và mẫu số của một phần nhỏ trong R

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

Nhưng sau đó làm thế nào để tôi trích xuất các tử số và mẫu số? Sự giúp đỡ cho fractions đề cập đến thuộc tính "fracs", nhưng tôi dường như không thể truy cập nó.

Trả lời

7

Một biểu diễn nhân vật của phần được lưu trữ trong một thuộc tính:

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

@BonnieScott Vâng, như Juba chứng minh, đó là khá dễ dàng để viết chức năng của riêng bạn để kéo chúng ra với. – joran

4

Bạn có thể lấy fracs thuộc tính từ phần bạn phản đối theo cách sau, nhưng nó chỉ là đại diện đặc trưng của phần bạn:

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

Nếu bạn muốn truy cập tử số và mẫu giá trị, bạn chỉ có thể chia chuỗi với chức năng sau:

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

Mà bạn có thể sử dụng theo cách này:

fracs <- getfracs(x) 
fracs$numerator 
# [1] 3 
fracs$denominator 
# [1] 8 
Các vấn đề liên quan