【问题标题】:How to disable stringsAsFactors=TRUE in data.frame permanently?如何在 data.frame 中永久禁用 stringsAsFactors=TRUE?
【发布时间】:2011-12-31 22:50:05
【问题描述】:

见标题。坦率地说,我有点厌倦了一直手动进行调整。

这应该是一个简单的问题,但我就是不知道如何解决它。谢谢。

【问题讨论】:

    标签: string r dataframe


    【解决方案1】:

    在 R 会话开始时或在 .RProfile 中设置 options(stringsAsFactors = FALSE)

    正如下面的 cmets 所暗示的,stringsAsFactors 在 R 社区中是一个有点争议的话题。您发现这个默认值有多烦人可能在一定程度上取决于您使用 R 来拟合许多“标准”统计模型(lmglm 等)所花费的时间。其中许多模型拟合和相关函数都是围绕使用因子数据类型构建的。

    如果您将大部分时间花在其他更“通用”类型的数据分析上,您可能会发现这种默认设置更令人恼火。

    全局设置stringsAsFactors = FALSE 被广泛认为是危险的,原因如下:共享代码时可能会导致严重的混乱。事实上,即使您主要是独自工作,如果您坚持使用stringsAsFactors = FALSE 运行 R,参与 StackOverflow 等在线社区可能会很棘手:您对问题的回答可能不适用于 OP,或者您可能无法复制错误别人在看!

    当然,每个人都可以自行选择如何最好地为自己管理这些风险。

    【讨论】:

    • 在您的.Rprofile 中设置此设置可能有点冒险,因为您的代码不再可移植。由于我做了很多教学,我决定在传递代码时很容易忘记这个选项。
    • 它真的应该是默认的。当因此而出现极其奇怪、难以调试的错误时,会降低我的工作效率。刚才我从一个文件中读取了绘图参数,忘记了,而且绘图是错误的,但仍然显示正确的标题和轴描述......
    • 它应该是默认的,因为诸如 as.data.frame() 之类的转换应该维护它们插入数据帧的对象的底层数据结构。
    • 截至R 4.0.0 stringsAsFactors = FALSE 是默认值。 (终于!)。
    猜你喜欢
    • 2012-07-17
    • 2012-10-03
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多