2013-03-31 46 views
5

Tôi muốn kết quả đầu ra của bàn điều khiển R của tôi có thể đọc được. Để kết thúc này, tôi muốn R làm tròn tất cả các số của tôi đến N chữ số thập phân gần nhất. Tôi có một số thành công nhưng nó không hoạt động hoàn toàn:Số vòng ở đầu ra để hiển thị số lượng gần bằng không nhỏ bằng không

> options(scipen=100, digits=4) 
> .000000001 
[1] 0.000000001 
> .1 
[1] 0.1 
> 1.23123123123 
[1] 1.231 

Tôi muốn 0,000000001 được hiển thị đơn giản 0. Làm thế nào để thực hiện điều này? Hãy để tôi cụ thể hơn: Tôi muốn một bản sửa lỗi toàn cầu cho toàn bộ phiên R. Tôi nhận ra tôi có thể bắt đầu sửa đổi mọi thứ bằng cách làm tròn chúng nhưng nó ít hữu ích hơn là chỉ đơn giản là thiết lập mọi thứ cho toàn bộ phiên.

+2

Dường như với tôi rằng việc hiển thị '0.000000001' như '0' không thể đọc được, nó chỉ gây hiểu lầm (có gì sai với ký hiệu khoa học đối với trường hợp như vậy?) –

+0

khi tôi chạy một hồi quy, biến tôi có xu hướng 'scale'd để 0,000000001 thực ra là không (không đáng kể tstat) nhưng nó được hiển thị như 1e-9 là không thể đọc được khi bạn có một số các số đang được hiển thị một số với 1e-9, một số với 1e0 (thực sự là quan trọng) – Alex

+2

làm thế nào bạn xuất ra hồi quy của bạn? Bất kể chức năng nào bạn sử dụng, rất có thể là nó có một lệnh in bên trong nó. Bên trong lệnh in đó, chèn một 'vòng (x, 4)' khi cần thiết. –

Trả lời

2

thử

sprintf("%.4f", 0.00000001) 
[1] "0.0000" 
+1

nhưng đây không phải là một sửa chữa toàn cầu như áp phích dường như muốn. –

+0

cảm ơn, nhưng như Tyler đã nói, tôi đã hy vọng làm điều gì đó một lần trong phiên như trái ngược với làm tròn mỗi lần tôi đã làm một hồi quy – Alex

4

Nhìn vào ?options, đặc biệt là tùy chọn digitsscipen.

+1

bạn có thể cụ thể hơn không? rõ ràng là tôi đã xem xét những điều đó như bạn có thể thấy từ câu hỏi ... – Alex

0

Kết hợp những gì Greg Snow và Ricardo Saporta đã cung cấp cho bạn câu trả lời đúng: options('scipen'=+20) and options('digits'=2), kết hợp với round(x,4).

round(x,4) sẽ làm tròn số lượng gần bằng không nhỏ.

Hoặc bạn làm tròn kết quả hồi quy của bạn một lần và lưu trữ nó:

x <- round(x, 4) 

... hoặc nếu không có, bạn phải làm điều đó mỗi khi bạn hiển thị số lượng nhỏ, nếu bạn không muốn lưu trữ giá trị được làm tròn của nó. Trong trường hợp của bạn, vì bạn nói số lượng gần bằng 0 không đại diện hiệu quả bằng không, tại sao bạn không làm tròn nó?

Nếu vì lý do nào đó, bạn cần giữ cả phiên bản chính xác và phiên bản làm tròn, sau đó thực hiện.

x.rounded <- round(x, 4)