如何随机配对向量中的元素?[R]

如何随机配对向量中的元素?[R],r,simulation,sampling,population,R,Simulation,Sampling,Population,我已经浏览了大约7个不同的答案,加上搜索了帮助文件,但运气不好(很久没有使用R了,所以我很生疏) 我有一个向量,它代表了n个玩家玩不同的生存策略,我想随机将每个元素与另一个元素配对。最初我尝试了下面的代码,但显然无法工作,因为结果对象有n个元素,而结果对象应该有n/2个元素 popsize=10 nstrats=3 总体这将为您提供总体中的配对列表(它只是将Population拆分为成对): 如果您想随机配对人口的元素,只需在创建配对之前将其洗牌即可: split(sample(Populati

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

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

popsize=10
nstrats=3

总体这将为您提供总体中的配对列表(它只是将
Population
拆分为成对):

如果您想随机配对
人口
的元素,只需在创建配对之前将其洗牌即可:

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

“配对感谢您的快速响应,Miff!理想情况下,配对方法应该是随机的:即使策略是随机分布的,配对也不是,因为P1永远不能玩玩家2-5(他们属于同一列),而且P1总是会玩玩家6,以此类推。想法?对不起-意思是:配对谢谢你的帮助!这真的很接近,但会导致玩家与自己配对的可能性(即,如果我的向量只有一个玩家玩策略S1,它可以与自己配对,即使这不应该发生)。谢谢,RoyalITS!是否会有随机执行此操作的命令?也就是说,每次我运行命令时,我都会得到一组不同的对?当然。我已经修改了我的答案。
split(Population,rep(1:(popsize/2),each=2))
split(sample(Population),rep(1:(popsize/2),each=2))