gpt4 book ai didi

R:何时使用 stringsAsFactors

转载 作者:行者123 更新时间:2023-12-04 16:01:42 25 4
gpt4 key购买 nike

我一直在阅读有关 stringAsFactors 的内容,以及尽管默认值为 TRUE,但在许多情况下您必须将某些命令设置为 FALSE。据我了解:

  • 因子是 R 存储文本的默认方式,因此如果您有一个包含文本的列的 df,当您导入数据时,R 会(总是?)将其转换为因子。

    <
  • 如果您打算使用这个特定的文本列进行统计测试(回归等),那么这很好,因为许多统计函数(如 lm() 或 glm() )将要求您拥有自己的文本变量设置为因子,以便它可以将它们视为分类数据。

  • 但是,如果您打算做统计测试以外的事情(即操纵您的 df、合并它等),那么您可能希望将 stringAsFactors 设置为 FALSE,因为如果您有设置为因子的文本变量。

这是正确的吗?我想我了解 stringAsFactors 的主要概念,但我想知道人们是否使用任何“规则”?换句话说,当您开始一个新脚本时,不能完全确定是否应该将 stringAsFactors 设置为 TRUE 或 FALSE 是“正常的”?是否有一个(非统计)包的列表,这些包特别以希望将 stringAsFactors 设置为 FALSE 而闻名?

换句话说,如果相当确定您不会对数据使用统计函数,那么将 stringAsFactors 设置为 FALSE 是否被认为是“良好做法”?

我明白我的问题很模糊,但我只是想知道人们在“决定”是将参数设置为 TRUE 还是 FALSE 时是否使用了某种“技巧”/“规则”。谢谢

最佳答案

您在讨论中遗漏了一个要点,但在我看来这一切都是完全准确和正确的。创建因子的原因之一是它们可以潜在地大量减少变量所需的存储空间量。例如,考虑具有非常低基数(值的唯一性)的数据框列。当将此信息存储为 character 数据时,它需要任何存储空间来存储整个列中的每个字符串。但是,随着因素的增加,存储需求会大大减少。作为一个因子,R 只需要将实际的字符串值存储一次,然后就可以用数值级别来表示所有的值。而且,在基数较低的列的情况下,与较大的列相比,实际上只需要存储几个字符串。

鉴于 R 主要是一种内存工具,而内存是宝贵的,因子代表了优化任何 R 脚本的好机会。纯粹从存储/内存的角度来说,将 stringsAsFactors 设置为 TRUE 很有意义。显然,如果您有 API 或需要其他方式的需求,那么您需要做出决定。

关于R:何时使用 stringsAsFactors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332065/

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