R:使用 tidy() 时将 class lm 的对象转换为数据框时出错

R: Error transforming object of class lm into data frame when using tidy()

我正在尝试将我的 lm 模型转换为数据框,以便 select p 值高于 0.05 的特征。

# Creating data frame from model's output
# library(permutations)
tm <- tidy(ols_reg)

# visualise dataframe of the model
# (using non scientific notation of numbers)
options(scipen = 999)
tm

tm$term[tm$p.value < 0.05]

但我收到错误: as.word(x) 中的错误:只能将数字对象强制转换为单词

为什么会发生这种情况,我该如何解决?

P.S.: 我找不到原始代码来源。如果您这样做,请编辑问题。

如错误消息所述,permutations::tidy 用于处理 class word 的对象。我怀疑您正在寻找 broom::tidy?

library(broom)
ols_reg <- lm(mpg ~ ., data = mtcars)
tm <- broom::tidy(ols_reg)
tm$term[tm$p.value < 0.1]
# [1] "wt"

您使用 library 导入的包已添加到您的搜索路径中。

search()
# [1] ".GlobalEnv"           "package:permutations"
# [3] "package:broom"        "package:tidyr"
# ...

当两个(或更多)函数具有相同的名称时,R 将使用找到的最接近搜索路径起点的对象。包裹在第二个位置附加,然后在您附加更多包裹时向下推。 broom 如果首先附加,将被 permutations 掩盖。 :: 运算符允许您指定要在其中查找函数的包命名空间。