R公式粘贴条件

R formula paste condition

我想从两个具有条件的不同向量中将公式粘贴到 R 中。从包含系数的向量中粘贴公式是可以的,但我不知道如何添加条件项

我已尝试使用 paste 和 paste0 解决问题

f1 <- c("x1", "x2", "x3")
f2 <- c("x3", "x4", "x5")

结果应该是 y ~ x1 + x2 + x3 | x3 + x4 + x5

我必须管理一个包含 > 100 个系数的大数据集,因此手动输入它不是真正的选择。

提前致谢!

我认为这可能是您要找的:

f1 <- c("x1", "x2", "x3") 
f2 <- c("x3", "x4", "x5")
paste("y ~ ",paste(f1, collapse = " + "),"|",paste(f2, collapse = " + "))

#output
#[1] "y ~ x1 + x2 + x3 | x3 + x4 + x5"

我们可以将这些术语放入列表中,

terms <- list(f1, f2)

并使用 reformulate().

fo <- reformulate(paste(sapply(terms, paste, collapse=" + "), collapse=" | "), response="y")
fo
# y ~ x1 + x2 + x3 | x3 + x4 + x5

好处是:

class(fo)
# [1] "formula"

数据

f1 <- c("x1", "x2", "x3")
f2 <- c("x3", "x4", "x5")