2016-01-24 1 views
3

При экспорте табличных данных с очень маленькими значениями p. мы заметили, что некоторые строки были ошибочно заменены на 0,0000000000 в полученном файле excel, а не очень малой мощностью 10 в -200 ... _300R пакет openXLSX и арифметика с плавающей точкой могут давать неточные результаты

следующая ссылка говорит нам, что наименьший предел Excel является 2.2250738585072E-308, но мы видим ошибки для чисел, как 1,21408E-288 или 1,21408E-288 (https://support.microsoft.com/en-us/kb/78113) мы могли бы подтвердите это путем последовательного разделения 2.2250738585070E-208 на 10

серийное разделение на 10 для достижения опубликованного лимита

serial division by 10 to reach the published limit

экспортируется текстовая таблица с использованием R кода (обратите внимание малые числа в 10E-293 и -288 в третьей колонке.

exported text table

экспортируется версия XLSX файла тех же таблицы с использованием openxlsx R коды, где малые числа заменяются 0.0000000000 (точка вместо запятой сепаратора)

resulting excel file with errors

MS Excel корректирует при открытии, но использует неправильный десятичный разделитель

excel corrects the mistake leading to wrong decimal separator and inconsistent number for my locale settings

Кто-нибудь знает, какой предел для экспорта Xlsx, чтобы мы могли преобразовать такие числа в 0?

Благодаря

+1

Вы можете обновить (например, R в Excel или наоборот), а также предоставить образцы данных на каждом шаге, который проходит, а также другие данные, которые не удалось? –

+0

проблема была известна и более подробно описана ** [здесь] (https://github.com/awalker89/openxlsx/issues/132) * * но предлагаемое решение не сработало для меня, потому что я не смог (пока) установить dev-версию пакета, которая должна преуспеть. – splaisan

ответ

1

проблема была, наконец, известна и была решена путем установки разработчик версии 3.1.6 пакета openXLSX (см github page для установки и посмотреть на issue 132

Смежные вопросы