r - 从公式中提取所有唯一变量
问题描述
我将lm()
模型的公式存储为chr
变量,并且尝试将公式中的所有变量提取到向量中。
为了使其可复制,使用mtcars
变量:mpg
、、cyl
和drat
(我的公式有转换等,如示例中所示)
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?
我仍然需要删除向量中的空字符串,并删除重复项。
解决方案
基础包有一个功能:
all.vars(as.formula(model_string))
#[1] "mpg" "cyl" "drat"
在这种情况下,您不应使用文本处理。
推荐阅读
- python - 使用 selenium 的异步多个无限循环
- python-3.x - Python:根据第二列读取 CSV 文件和组
- flutter - 无法在 GridView builder() 中加载图像
- html - 如何使用 html 代码创建子函数?
- asp.net-core - ASP.NET Core MVC (.NET 5) 中的本地化和全球化
- c# - Windows 应用和 UWP 应用之间的通信通道
- python - 创建一个使用烧瓶应用配置的独立脚本
- azure - 有没有办法确定用于运行 Azure 管道的参数?
- html - 如何使 n 数量的图像出现在 HTML 中的随机位置?
- javascript - 存储在 AsyncStorage 中的对象中的值不递增