首页 > 解决方案 > 使用粘贴制作公式

问题描述

我正在尝试使用 R 制作公式。

我有以下数据:

data(iris)
iris <- iris %>%
  select(Species, everything())

我正在尝试formula根据 colnames 制作一个。我希望公式看起来像formula <- y ~ x1 + x2 + x3 + x4. 我可以使用以下内容来获取 X 变量。

paste("X", seq(2:ncol(iris)), sep = "")

如何在它们之前粘贴 y ~ 并添加+?我可以使用collapse,但我希望~+在同一个公式中。

标签: r

解决方案


如果我们首先使用以下或类似的方法重命名和重新排列列,这将很简单

library(dplyr)
df <- iris %>%
        select(Species, everything()) %>% 
        rename_all(~paste0("X", seq_along(.) - 1)) %>%
        rename(Y = 1)

然后我们可以使用reformulatelike

reformulate(names(df)[-1], names(df)[1])
#Y ~ X1 + X2 + X3 + X4

我们也可以paste0根据喜好创建一个字符串,然后使用as.formula

as.formula(paste0("Y ~ ", paste0(names(df)[-1], collapse = " + ")))
#Y ~ X1 + X2 + X3 + X4

推荐阅读