使用package readr中的write_csv()函数编写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
唯一有用的是将x保存为字符向量,这样可以保持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 with scientific notation after 1000th row,但这对我来说似乎是一个不同的问题。
答案 0 :(得分:0)
尝试以下代码
write_csv(df, "df.csv",fileEncoding = "UTF-16LE")
答案 1 :(得分:0)
一种方法是使用常规的write.csv()函数并设置options():
x <- c(4100750938, 4104806156, 4001682199, 4100738000)
df <- data.frame(x)
options(digits=15)
write.csv(df, "myfile.csv", row.names = FALSE)
system("cat myfile.csv")
# "x"
# 4100750938
# 4104806156
# 4001682199
# 4100738000