Chức năng print.default
nhìn vào giá trị options()['digits']
trong "quyết định" chiều rộng để phân bổ, vì vậy bạn có thể cần tăng nó cũng như cố gắng tối đa hóa 'xóa'. Có các vấn đề về hệ điều hành cụ thể với các giá trị trên 16 cho chiều rộng đó. Đối với yêu cầu dấu phẩy, ... quên nó đi. R không phải là hệ thống báo cáo tài chính. Nếu bạn cần ép buộc định dạng đầu ra này, bạn có thể định nghĩa đối tượng là một lớp cụ thể và viết phương thức in cho chúng bằng sprintf và formatC, Hoặc tôi giả sử bạn có thể viết lại print.default, nhưng điều đó chỉ ảnh hưởng đến các thao tác in không được chuyển đến một trong 100 phương pháp khác cho print
.
Có phương thức đầu ra. formatC()
và prettyNum()
cả hai đều có đối số 'big.mark' sẽ chèn dấu phẩy vào số. Đầu ra có định dạng "character"
, do đó, hãy không cố gắng thực hiện thêm bất kỳ phép tính nào trên kết quả bạn tạo.
Ngoài ra còn có phương pháp đầu vào có thể đọc các cột với các số có chứa dấu phẩy hoặc ký hiệu tiền tệ:
setAs("character", "num.with.commas", function(from) as.numeric(gsub(",", "", from)))
setAs("character", "euro",
function(from) as.numeric(gsub("€", "", from)))
setAs("character", "num_pct",
function(from) as.numeric(gsub("%", "", from))/100)
# you will get warning messages if you have not defined the class,
# .... but this will still succeed
Input <- "A B C
1,000 1% 3.50€
2,000 2% 4.77€
3,000 3% €5.68
"
DF <- read.table(textConnection(Input), header = TRUE,
colClasses = c("num.with.commas", "num_pct", "euro"))
str(DF)
Nguồn
2012-05-30 20:19:20
Ra khỏi tò mò bệnh hoạn, tại sao? Độ chính xác gấp đôi chỉ chính xác đến ~ 16 chữ số, vì vậy mọi thứ sau đó vẫn làm tròn. –
cách sử dụng kế toán – JoeJoe
Bạn có hiểu sự khác biệt giữa những gì được hiển thị trong bảng điều khiển và những gì được ghi vào một tệp hoặc kết nối khác không? –