1

我需要创建一个公式列表,以便以后在地图函数中使用。我有向量 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)创建公式吗?

在此处输入图像描述

4

1 回答 1

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
于 2018-04-18T22:25:14.657 回答