我需要创建一个公式列表,以便稍后在map函数中使用。我有矢量Y和X
X <- c("A", "B", "C")
Y <- c("X", "L", "Z")
并希望使用这些向量将输出作为3个不同的长度为9的列表或具有所需输出的tibble,如下所示。我们可以使用rep(X, n)
来获取X和!(X %in% "C")
的多个条目以删除&#34; C&#34;当Y == L和&#34; B&#34;当Y == Z和reformulate(X,Y)
来创建公式?
答案 0 :(得分:2)
这将一次创建目标输出:
# X <- c("A", "B", "C")
# Y <- c("X", "L", "Z")
data.frame(Y = rep(Y, each = 3),
X = I(rep(append(list(X),
c(data.frame(combn(X, 2)[1:2, 1:2],
stringsAsFactors = F))), each = 3))) %>%
rowwise() %>%
mutate(formula = paste("X ~", paste(X, collapse = " + "))) %>%
data.frame()
# Y X formula
# 1 X A, B, C X ~ A + B + C
# 2 X A, B, C X ~ A + B + C
# 3 X A, B, C X ~ A + B + C
# 4 L A, B X ~ A + B
# 5 L A, B X ~ A + B
# 6 L A, B X ~ A + B
# 7 Z A, C X ~ A + C
# 8 Z A, C X ~ A + C
# 9 Z A, C X ~ A + C