Запись csv с помощью функции write_csv () из пакета readr, по-видимому, обрабатывает числа по-разному в зависимости от конечных нулей.
- 4001705344 сохраняется как есть, но
- 4100738000 сохраняетсякак 4100738e3 в CSV.
Это вызывает проблемы при повторном открытии CSV (например, в Excel).
Для воспроизводимого примера s.
library(readr)
x <- c(4100750938, 4104806156, 4001682199, 4100738000)
df <- data.frame(x)
write_csv(df, "df.csv")
Результат -
x
4100750938
4104806156
4001682199
4100738e3
Ожидаемый результат -
x
4100750938
4104806156
4001682199
4100738000
Единственное, что помогает, - это сохранить х как символьный вектор, который сохраняет число в 000 и дает ожидаемый результат.
library(readr)
x <- c(4100750938, 4104806156, 4001682199, 4100738000)
x <- as.character(x)
df <- data.frame(x)
write_csv(df, "df.csv")
Но есть ли другой путь?И работает ли write_csv () здесь правильно?
Я использую readr_1.1.1 на R версии 3.3.3 (2017-03-06) Платформа: x86_64-w64-mingw32 / x64 (64-разрядная версия)
Просмотр других вопросов, которые я нашел write_csv read_csv с научной нотацией после 1000-й строки , но, похоже, это другой вопрос для меня.