如何在R中的某些条件下建立置换

时间:2018-10-06 03:35:16

标签: r permutation

我是R的新手,我有些困惑。假设我有一个向量c(1,2,3,4,5,6)。我想生成包含四个元素的排列,每个排列都应包含1和5。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用gtools软件包中的permutations()来获取置换,而使用dplyr中的filter_all()来获取具有1和5的置换。

library(gtools)
library(dplyr)

data <- c(1, 2, 3, 4, 5, 6)

permutations(n = 6, r = 4, v = data, repeats.allowed = FALSE) %>%
  as_tibble() %>% 
  filter_all(any_vars(. == 5)) %>%
  filter_all(any_vars(. == 1))

输出:

# A tibble: 144 x 4
      V1    V2    V3    V4
   <dbl> <dbl> <dbl> <dbl>
 1     1     2     3     5
 2     1     2     4     5
 3     1     2     5     3
 4     1     2     5     4
 5     1     2     5     6
 # ...