gpt4 book ai didi

r - 为什么 R 将数字数据作为字符读取?

转载 作者:行者123 更新时间:2023-12-04 06:37:42 24 4
gpt4 key购买 nike

我正在尝试加载一个包含整数和浮点数据的文件。我不知道为什么 R 会将其中一列读取为字符字段。

 > df <- read.table( 'C:\\temp\\test.tab' , 
+ sep = '\t' , header = TRUE , stringsAsFactors = FALSE , dec="." )
> str(df)
'data.frame': 7 obs. of 5 variables:
$ A: int 0 0 0 0 1 0 0
$ B: int 1431 2097 2712 24821 27359 41165 49221
$ C: int 0 0 0 0 0 0 0
$ D: chr "7" "26.950000762939453" "57.95000076293945" "21" ...
$ E: int 1 2 3 4 5 6 7

文件内容:
 A  B   C   D   E
0 1431 0 7 1
0 2097 0 26.950000762939453 2
0 2712 0 57.95000076293945 3
0 24821 0 21 4
1 27359 0 57.900001525878906 5
0 41165 0 33.95000076293945 6
0 49221 0 28.950000762939453 7

enter image description here
 > R.version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 1.0
year 2014
month 04
day 10
svn rev 65387
language R
version.string R version 3.1.0 (2014-04-10)
nickname Spring Dance

最佳答案

这可能值得我们指出一个真正的答案,所以......
type.convert的行为在 R 3.1.0 中进行了更改(并且,如下所述,将在很大程度上恢复到 R 3.1.1 中的 3.1.0 之前的行为):

As from R 3.1.0, where converting inputs to numeric or complex would result in loss of accuracy they are returned as strings (for as.is = TRUE) or factors.



这在 r-devel 邮件列表上引起了相当大的骚动。相关(和长)线程的开头是 here .

正如 Ben 上面提到的,讨论的结果之一是默认行为是 restored在后续版本的开发版本中。

在短期内,如果您知道哪些列会受到影响,您可以随时使用 colClasses .否则你必须修改你的代码来检查 read.table 的结果并自己转换东西,我猜。

关于r - 为什么 R 将数字数据作为字符读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634964/

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