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 掩盖。 ::
运算符允许您指定要在其中查找函数的包命名空间。
我正在尝试将我的 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 掩盖。 ::
运算符允许您指定要在其中查找函数的包命名空间。