为什么我在R中使用read.csv时会观察到额外的尾随数字?

时间:2018-02-22 16:09:26

标签: r read.table read.csv

我正在从csv中读取大量数据。值具有尾随零。使用read.csv导入数据时,会在数字末尾附加其他数字。

可重复的例子:

> options(digits = 22)
> number <- as.character("19.745130761412300000000000000000")
> print(number)
[1] "19.745130761412300000000000000000"

> write.csv(number, "number.csv")
> read.csv("number.csv")
  X                  x
1 1 19.745130761412302

注意x末尾的02。

使用as.numeric时会发生此行为:

> number <- as.character("19.745130761412300000000000000000")
> print(number)
[1] "19.745130761412300000000000000000"
> as.numeric(number)
[1] 19.745130761412302

导入多个数据时如何避免额外数字?删除read.csv之前的尾随零不是一种选择。任何帮助将不胜感激。

谢谢,

克里斯

1 个答案:

答案 0 :(得分:0)

使用numerals = "no.loss"

write.csv("19.745130761412300000000000000000", "number.csv")
dd <- read.csv("number.csv", numerals = "no.loss")

print(dd, digits = 22)
##   X                                 x
## 1 1 19.745130761412300000000000000000

str(dd)
## 'data.frame':   1 obs. of  2 variables:
##  $ X: int 1
##  $ x: Factor w/ 1 level "19.745130761412300000000000000000": 1

有关详细信息,请参阅numerals中的?type.convert参数。