R 导出为csv并以相同的数值精度导入?
当我将数字数据导出到csv文件,然后将它们导入到R中时,它们并不相等,如下所示。在不进行任意舍入的情况下,检查这些数据是否相等的最佳方法是什么?或者,有没有一种好方法可以将数字数据导出到csv文件,然后再导入它们并检查它们是否与新结果完全相同?我对涉及以不同方式向csv或制表符分隔的文件导出或导入数据的解决方案持开放态度R 导出为csv并以相同的数值精度导入?,r,R,当我将数字数据导出到csv文件,然后将它们导入到R中时,它们并不相等,如下所示。在不进行任意舍入的情况下,检查这些数据是否相等的最佳方法是什么?或者,有没有一种好方法可以将数字数据导出到csv文件,然后再导入它们并检查它们是否与新结果完全相同?我对涉及以不同方式向csv或制表符分隔的文件导出或导入数据的解决方案持开放态度 set.seed(10) x = rnorm(1) write.csv(x, "test.csv", row.names = F) y = read.csv("test.csv
set.seed(10)
x = rnorm(1)
write.csv(x, "test.csv", row.names = F)
y = read.csv("test.csv")
x == y
如果数据不必保存为
.csv
,那么最好使用保存将数据保存为.RData
,然后在需要时加载它
set.seed(10)
x = rnorm(1)
x2 = x
save(x2, file = "x.RData")
rm(x2)
load("x.RData")
> identical(x, x2)
[1] TRUE
如果数据不必保存为.csv
,那么最好使用保存将数据保存为.RData
,然后在需要时加载它
set.seed(10)
x = rnorm(1)
x2 = x
save(x2, file = "x.RData")
rm(x2)
load("x.RData")
> identical(x, x2)
[1] TRUE
那么…write.csv(格式(x,数字=17),“test.csv”,row.names=F)呢
无论如何,我必须弄明白:
表格:
“历史上,R的浮点向量有两个名称,double
和numeric
(以前是real
)。double
是类型的名称。numeric
是模式的名称,也是隐式类的名称。”
计算机上的实际精度取决于您的计算机,请参见.machine
关于…write.csv(格式(x,数字=17),“test.csv”,row.names=F)的内容
无论如何,我必须弄明白:
表格:
“历史上,R的浮点向量有两个名称,double
和numeric
(以前是real
)。double
是类型的名称。numeric
是模式的名称,也是隐式类的名称。”
计算机上的实际精度取决于您的计算机,请参见.machine
谢谢,了解这一点很有用,但我对导出到csv或制表符分隔文件的数据特别感兴趣。我编辑了这个问题。谢谢,知道这一点很有用,但我对导出到csv或制表符分隔文件的数据特别感兴趣。我编辑了这个问题。我喜欢你的答案。我在找一件简单的事情。为什么17是个好选择?请看我的编辑。格式(x,digits=22)是最大值,显示18位。numeric
使用基于的双精度浮点格式,具有15-17位有效十进制数字。好的,digits=17及以上对我适用。这个数字可以确定吗?我不确定如何解释.Machine中的字节大小信息。有趣的问题,不幸的是我不知道答案。我认为,在大多数电脑上,精度已经足够了。。。顺便说一句:RData的优点是,数据是压缩的,所以需要更少的内存!如果你只在R范围内工作,我会用它。我喜欢你的答案。我在找一件简单的事情。为什么17是个好选择?请看我的编辑。格式(x,digits=22)是最大值,显示18位。numeric
使用基于的双精度浮点格式,具有15-17位有效十进制数字。好的,digits=17及以上对我适用。这个数字可以确定吗?我不确定如何解释.Machine中的字节大小信息。有趣的问题,不幸的是我不知道答案。我认为,在大多数电脑上,精度已经足够了。。。顺便说一句:RData的优点是,数据是压缩的,所以需要更少的内存!如果你只在R范围内工作,我会用它。