Những lựa chọn datatype nào chúng ta phải xử lý số lớn trong R? Theo mặc định, kích thước của một số nguyên có vẻ là 32 bit, vì vậy số bigint từ máy chủ sql cũng như bất kỳ số lớn nào được truyền từ python qua rpy2 bị xáo trộn.kiểu dữ liệu tương đương dài/bigint/thập phân trong R
> 123456789123
[1] 123456789123
> 1234567891234
[1] 1.234568e+12
Khi đọc một giá trị bigint của 123456789123456789 sử dụng RODBC, nó trở lại như 123456789123456784 (xem chữ số cuối cùng), và số lượng tương tự khi deserialized qua RJSONIO, trở lại như -1395630315L (mà có vẻ như một lỗi thêm/giới hạn của RJSONIO).
> fromJSON('[1234567891]')
[1] 1234567891
> fromJSON('[12345678912]')
[1] -539222976
Trên thực tế, tôi cần để có thể xử lý một số lượng lớn đến từ JSON, như vậy với giới hạn RJSONIO, tôi có thể không có một cách giải quyết trừ cho việc tìm kiếm một JSON thư viện tốt hơn (mà có vẻ như một tổ chức phi tùy chọn đúng hiện nay). Tôi muốn nghe những gì các chuyên gia phải nói về điều này cũng như nói chung.
Tôi đã xem hàm as.numeric(), nhưng bị nhầm lẫn bởi thực tế là chế độ (1) cũng cung cấp "số" làm loại, vì vậy tôi nghĩ rằng tôi đã xử lý chúng. Sau đó tôi đã thử as.numeric ("123456789123456789") và chỉ thấy một vài con số được in, do đó giả định rằng nó bị mất độ chính xác. Tôi không biết về các tùy chọn ("chữ số") trước đây. – haridsv
Ah, vâng, các chữ số. Ngoài ra, nếu bạn cần số chính xác hoặc số lượng lớn hơn, CRAN có các gói cho ví dụ đó, ví dụ: (có tên là :-) Gói Brobdingnag có số lượng lớn, và cũng có gói gmp để giao tiếp GNU gmp. –
(Tôi biết Dirk biết điều này nhưng tôi bình luận để cảnh báo những người tìm kiếm khác.) Các phiên bản mới hơn của R cho phép chuyển đổi liền mạch sang lưu trữ số nguyên hơn gấp đôi. Kích thước ma trận vẫn không sử dụng chuyển chế độ tự động đó. –