如何停止csv文件将字符(例如,平板孔ID 2E6)转换为科学计数法?

时间:2019-04-18 22:33:58

标签: r csv

帮助CSV文件将字符串(例如“ 1E6”)转换为科学计数法

写入CSV文件时,包含'E'的字符字段将自动转换为科学计数法(例如,板孔ID“ 1E6”变为1,000,000)-与在Excel或LibreOffice中查看数据无关。

纯文本文件仍为“ 1E6”。但是,即使我编写了csv文件,也从未在Excel或LibreOffice中打开它,它仍会通过read.csv作为科学符号导入回R中。

玩具数据示例:

df <- data.frame(a = c("1E3", "2E4", "3E5", "4E6"))
df

write.csv(df, "~/Downloads/test.csv")

df2 <- read.csv("~/Downloads/test.csv")
df2

# Trialled before write.csv, but did not change
df$a <- as.character(df$a)
format(df$a, scientific = FALSE)
options(scipen = 999)

这是一个很小的玩具数据集,因此我可以在电子表格中将“ 1,000,000”手动更改回“ 1E6”,但是实际数据包含> 1,000行,并且此时需要编写一个中间表。此外,一旦Excel或LibreOffice以科学方式(“ 1,000,000”)对其进行“读取”,就不会反向转换为字符串了!

  • 确保df$a是字符as.character不会改变
  • 未通过更改全局options(scipen = 999)
  • 进行更改
  • 未被df$a <- format(df$a, scientific = FALSE)更改
  • 通过将R会话重新启动为“干净状态”未更改
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.4

locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.2 tools_3.5.2    yaml_2.2.0

Stop Excel Scientific Notation Conversion类似的问题,但并未在那里解决,我不认为它像“责备Excel”那样简单-LibreOffice中的同一问题,Excel从未打开的文件仍然存在问题。

0 个答案:

没有答案