gpt4 book ai didi

r - 保留旧的(3.1.0 之前)type.convert 行为

转载 作者:行者123 更新时间:2023-12-03 20:28:44 25 4
gpt4 key购买 nike

R 3.1.0 已发布,其中一项新功能如下:

type.convert() (and hence by default read.table()) returns a character vector or factor when representing a numeric input as a double would lose accuracy. Similarly for complex inputs.



举个例子:
df <- read.table(text = "num1 num2
1.1 1.1234567890123456
2.2 2.2
3.3 3.3", header = TRUE)

sapply(df, class)
# num1 num2
# "numeric" "factor"

而在以前的版本中, read.table 会返回两个数字列。

对于那些像我一样关心这种变化的人,可以做些什么来保留旧的行为?

注意:我想要一个不对输入数据做出假设的通用解决方案,即不建议我在上面的示例中使用 colClasses = "numeric"。谢谢。

最佳答案

在 3.1.1 版本中,News file 中列出了此更改:

type.convert(), read.table() and similar read.*() functions get a new numerals argument, specifying how numeric input is converted when its conversion to double precision loses accuracy. The default numerals = "allow.loss" allows accuracy loss, as in R versions before 3.1.0.



关于原始更改的大部分发布后讨论,包括通过附加警告恢复默认行为的决定,可以在 in a thread on the developers' email list 中找到。 .

对于 3.1.0 版,必须修改代码才能获得旧的行为。切换到 3.1.1 是另一种策略。

提到版本 3.1.0 的此更改(来自相同的 News file )说

type.convert() (and hence by default read.table()) returns a character vector or factor when representing a numeric input as a double would lose accuracy. Similarly for complex inputs.

If a file contains numeric data with unrepresentable numbers of decimal places that are intended to be read as numeric, specify colClasses in read.table() to be "numeric".



注意:原始答案是在修补了 3.1.0 修补程序的适用版本时编写的。现在 3.1.1 已发布,答案已更新。

关于r - 保留旧的(3.1.0 之前)type.convert 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23072988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com