【问题标题】:extract all unique variables from a formula从公式中提取所有唯一变量
【发布时间】:2020-09-29 19:23:48
【问题描述】:

我将lm() 模型的公式存储为chr 变量,我正在尝试将公式中的所有变量提取到向量中。

为了使其可复制,使用 mtcars 变量:mpgcyldrat(我的公式在示例中具有转换等)

model_string <- "mpg ~ cyl + I(abs(0.5-drat)) + I((0.5 - drat)^2)"

我想要的输出是:

vars_used <- c("mpg", "cyl", "drat")

到目前为止,我所做的是:

library(tidyverse)
vars_used <- model_string %>% 
  str_extract_all(pattern = "\\w+") %>% 
  pluck(1) %>% 
  str_remove_all(pattern = "[0-9]")

vars_used

[1] "mpg"  "cyl"  "I"    "abs"  ""     ""     "drat" "I"    ""     ""     "drat" ""    

有没有更简单的方法来完成我想要做的事情,尤其是使用 tidytext?

我仍然需要删除向量中的空字符串,并删除重复项。

【问题讨论】:

    标签: r regex tidyverse tidytext


    【解决方案1】:

    基础包有一个功能:

    all.vars(as.formula(model_string))
    #[1] "mpg"  "cyl"  "drat"
    

    在这种情况下你不应该使用文本处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 2023-02-01
      • 2021-08-27
      • 2014-02-14
      • 1970-01-01
      相关资源
      最近更新 更多