我需要创建一个公式列表,以便以后在地图函数中使用。我有向量 Y 和 X
X <- c("A", "B", "C")
Y <- c("X", "L", "Z")
并希望使用这些向量将输出作为 3 个长度为 9 的不同列表或具有所需输出的 tibble 如下所示。我们可以使用rep(X, n)
获取 X 的多个条目并!(X %in% "C")
在 Y==L 时删除“C”和在 Y==Z 时删除“B”并reformulate(X,Y)
创建公式吗?
这将一次性创建您的目标输出:
# 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