read.csv似乎未检测到R4.0.0中的因素

问题描述 投票:1回答:1

我最近从R 3.5.1更新到R 4.0.0。 read.csv的行为似乎已更改-当我在R 4.0.0中加载.csv文件时,不会自动检测到因素,而是将其识别为字符。我还在计算机上运行3.5.1,并且在使用相同代码在3.5.1中加载相同文件时,因素被识别为因素。这有点次优。我正在运行Windows 10 Pro,并在Excel 2013中创建.csv文件。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9YNm1tNi5qcGcifQ==” alt =“ R3.5.1的屏幕截图”>“

r categorical-data read.csv r-4.0.0
1个回答
0
投票

正如Ronak Shah在对您的问题的评论中所说,R 4.0.0更改了read.table()(及其包括read.csv()的包装器)如何处理字符向量的默认行为。关于该问题已经有很长的争论,但是从R诞生以来,stringsAsFactors == T设置基本上是默认设置,因为它可以节省内存,这是因为R中实现了因子变量的方式(本质上它们是具有因子水平的整数向量)信息添加在顶部)。如今,这样做的原因已经很少了,因为内存更加丰富,而且此选项经常会产生意想不到的副作用。

您可以在Hadley Wickham的Advanced R的Chapter 3中阅读有关R的特定问题以及矢量的其他特殊性。在其中,他提供了两篇文章,其中详细介绍了为什么默认行为是如此。Here是一个,here是另一个。如果您已经有R的使用经验,我还建议您阅读Hadley的书,它对我学习一些不太明显的语言功能很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.