使用X& X的向量创建列表或公式组。 ÿ

时间:2018-04-18 21:17:50

标签: r tidyverse purrr tibble rep

我需要创建一个公式列表,以便稍后在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)来创建公式?

enter image description here

1 个答案:

答案 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