2013-11-20 3 views
2

При преобразовании файла xls в файл csv с использованием «Сохранить как ...» в Excel (который затем будет импортирован в R), выходной файл csv систематически падает все числа после десятичной точки, например 1.0524 становится 1, 5.213 становится 5 и так далее.Преобразование Excel в csv - сохранение чисел после десятичной точки

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

Thanks

+0

Вы уверены, что данные в ваших клетках Excel действительно чисел с плавающей запятой в соответствии с десятичными настроек вашего компьютера? –

+0

Excel не молчает усечение поплавков. Какую версию вы используете? Какая страна? Какой разделитель ожидает ваша библиотека CSV? –

+0

Я использую французскую версию Excel 2010 - разделитель является; – user2568648

ответ

5

Excel не делает этого. Тем не менее, для неамериканских пользователей довольно часто натыкаться на формат вывода CSV Excel.

В США Excel использует цифру . для десятичной точки и , в качестве разделителя CSV (очевидно, это называется разделенным запятой значениями по определенной причине).

Во многих европейских странах Excel использует десятичную точку , и ; в качестве разделителя CSV (согласно соглашениям стран для десятичных обозначений).

Если вы попытаетесь прочитать CSV-файл ЕС с помощью CSV-библиотеки США, вы можете получить смещенные значения полей по понятным причинам.

Так, например, в R вы должны сообщить ваш читатель CSV это:

table = read.csv2(file, sep = ";", quote = "\"", dec = ",") 
+0

Спасибо. Из интереса, какой предпочтительный способ считывать данные в R из файла Excel? Лучше всего конвертировать в текстовый файл с разделителями табуляции, чем файл csv? – user2568648

+2

Для этого используйте 'read.csv2()'. Он позволяет указать символ разделителя и десятичной точки. Введите 'help (read.csv)' в командной строке для документации. –

+0

+1 [хороший ответ] (http://en.wikipedia.org/wiki/Decimal_mark)! –

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