我有一个包含五个项目的向量。
my_vec <- c("a","b","a","c","d")
Run Code Online (Sandbox Code Playgroud)
如果我想将这些值重新排列成一个新的向量(shuffle),我可以使用 sample():
shuffled_vec <- sample(my_vec)
Run Code Online (Sandbox Code Playgroud)
简单 - 但 sample() 函数只给了我一种可能的洗牌。如果我想知道所有可能的洗牌组合怎么办?各种“combn”的功能似乎并没有帮助,expand.grid()给我的每一个可能的组合都与更换,当我需要它无需更换。执行此操作的最有效方法是什么?
请注意,在我的向量中,我有两次值“a”——因此,在返回的一组混洗向量中,它们都应该在集合中都有两次“a”。