如何在data.frame中永久禁用stringsAsFactors = TRUE?

lok*_*art 34 string r dataframe

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

这应该是一个简单的问题,但我无法弄清楚如何解决它.谢谢.

jor*_*ran 54

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

正如下面的评论所暗示的那样,stringsAsFactorsR社区内的一个有争议的话题.如何刺激你觉得这个默认值可能在你花了多少时间,使用R,以适应许多"标准"统计模型(有点依赖lm,glm等等).许多模型拟合和相关函数都是使用因子数据类型构建的.

如果您将大部分时间用于其他更"通用"的数据分析类型,您可能会发现此默认设置更具刺激性.

stringsAsFactors = FALSE由于下面提到的原因,全局设置被广泛认为是危险的:它在共享代码时会引起很大的混淆.事实上,即使你主要是单独工作,如果你坚持用R运行R,参与像StackOverflow这样的在线社区可能会很棘手stringsAsFactors = FALSE:你对问题的回答可能不适用于OP,或者你可能无法复制别人看到的错误!

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

  • 在你的`.Rprofile`中设置这个设置会有点风险,因为你的代码不再可移植.因为我做了很多教学,所以我决定在传递代码时忘记这个选项太容易了. (25认同)
  • 它应该是默认的.当非常奇怪,因此而难以调试错误时,会导致我的工作效率降低.刚才我从文件中读取了绘图参数,忘记了它,并且在显示正确的标题和轴描述的同时情节错了...... (13认同)
  • 它应该是默认的,因为诸如 as.data.frame() 之类的转换应该维护它们插入到数据帧中的对象的底层数据结构。 (2认同)
  • 从“R 4.0.0”开始,“stringsAsFactors = FALSE”是默认值。(最后!)。 (2认同)