0

我浏览了大约 7 个不同的答案,加上搜索的帮助文件,但没有运气(很久没有使用 R,所以,我很生疏)。

我有一个向量代表n玩家玩不同生存策略,我想将每个元素随机配对。最初我尝试了下面的代码,但显然这不起作用,因为结果对象有n 个元素,而我的结果对象应该有n/2

popsize = 10
nstrats = 3

Population <- sample(1:nstrats, popsize, T)
Opponents <- sample(Population)
Pairings <- cbind(Population, Opponents)

我试图在没有循环的情况下做到这一点,但我很乐意接受任何建议(特别是如果使用循环是唯一的方法!)

提前谢谢了!

4

1 回答 1

2

这将为您提供来自 Population 的配对列表(它只是分成Population对):

split(Population,rep(1:(popsize/2),each=2))

如果您想Population在创建配对之前随机配对元素,只需将其随机排列:

split(sample(Population),rep(1:(popsize/2),each=2))
于 2014-04-03T21:43:40.287 回答