R语言ordered转换因子为有序因子时如何关闭冗余输出
R运行ordered函数产生冗余输出的解决方法
核心原因
你当前调用ordered()时没有将函数返回的结果赋值给变量,R会默认把函数返回的完整有序因子对象直接打印到控制台,数据量越大,刷屏的冗余内容就越多。
正确操作
将ordered()的返回结果赋值回数据框的对应列即可,运行后不会产生多余控制台输出,同时能正确完成有序因子的设置:
# 直接为列设置有序因子层级,赋值后无额外输出 data_3_base$soc <- ordered(data_3_base$soc, levels = c("0", "1", "2", "3", "4"))
- 你之前单独运行的
as.factor()步骤可以省略:ordered()本身就会自动完成因子类型转换,不需要提前把列转成普通因子。 - 如果只是临时运行函数不想让结果打印、且不需要修改原数据,可以用
invisible()包裹语句:invisible(ordered(data_3_base$soc, levels = c("0", "1", "2", "3", "4")))
注意:
invisible()的方式不会修改原数据框的列属性,仅适合临时调试场景,要永久修改列的因子顺序必须做赋值操作。
内容的提问来源于stack exchange,提问作者Arden Stricke
相关产品推荐
相关产品推荐

