我是R的新手,我有些困惑。假设我有一个向量c(1,2,3,4,5,6)。我想生成包含四个元素的排列,每个排列都应包含1和5。谢谢。
答案 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
# ...