我一直在研究stringAsFactors,尽管默认值为TRUE,在许多情况下你必须将其设置为FALSE才能使用某些命令。据我所知:
- 因子是R存储文本的默认方式,因此如果您有一个包含文本的df列,则导入数据时R将始终将其转换为因子(?)。 - 如果您打算使用特定的文本列进行统计测试(回归等),那么这很好,因为许多统计函数(如lm()或glm())都需要将文本变量设置为因子,以便将其视为分类数据。 - 然而,如果您想要做其他事情而不是统计测试(即操作您的df、合并它等),那么您可能想将stringAsFactors设置为FALSE,因为如果您将文本变量设置为因子,一些函数可能会给您带来错误。
这正确吗?我认为我理解了stringAsFactors的主要概念,但我想知道是否有任何“规则”可以遵循?换句话说,当您开始一个新脚本时,通常不会完全确定是否应将stringAsFactors设置为TRUE还是FALSE?是否有已知特别需要将stringAsFactors设置为FALSE的(非统计)包的列表?
换句话说,如果您相当确定不会在数据上使用统计函数,将stringAsFactors设置为FALSE是否被认为是“良好的实践”?
我知道我的问题有点模糊,但我只是想知道是否有人使用某种“技巧”/“规则”来“决定”是否将参数设置为TRUE或FALSE。谢谢
- 因子是R存储文本的默认方式,因此如果您有一个包含文本的df列,则导入数据时R将始终将其转换为因子(?)。 - 如果您打算使用特定的文本列进行统计测试(回归等),那么这很好,因为许多统计函数(如lm()或glm())都需要将文本变量设置为因子,以便将其视为分类数据。 - 然而,如果您想要做其他事情而不是统计测试(即操作您的df、合并它等),那么您可能想将stringAsFactors设置为FALSE,因为如果您将文本变量设置为因子,一些函数可能会给您带来错误。
这正确吗?我认为我理解了stringAsFactors的主要概念,但我想知道是否有任何“规则”可以遵循?换句话说,当您开始一个新脚本时,通常不会完全确定是否应将stringAsFactors设置为TRUE还是FALSE?是否有已知特别需要将stringAsFactors设置为FALSE的(非统计)包的列表?
换句话说,如果您相当确定不会在数据上使用统计函数,将stringAsFactors设置为FALSE是否被认为是“良好的实践”?
我知道我的问题有点模糊,但我只是想知道是否有人使用某种“技巧”/“规则”来“决定”是否将参数设置为TRUE或FALSE。谢谢
options(stringsAsFactors = FALSE)
并在需要时显式创建因子。 - Roland