我希望从CRAN中探索 GameTheory 包,但我很感激帮助将我的数据(以独特组合和结果的数据框的形式)转换为所需的联盟对象 . 我相信这是所有联盟 Value 观的有序列表(https://cran.r-project.org/web/packages/GameTheory/vignettes/GameTheory.pdf) .

我的真实数据有n~30个“玩家”,独特的组合=大(比如1000个独特的组合),我有1和0个标识符来描述这些组合 . 该数据稀疏地填充,因为我没有所有组合的数据,但是假设未描述的组合具有零值 . 我打算让一个特定的“玩家”出现在所有组合中,并充当基线 .

举个例子,这是我开始的数据框:

require(GameTheory)
games <- read.csv('C:\\Users\\me\\Desktop\\SampleGames.csv', header = TRUE, row.names = 1)
games

  n1 n2 n3 n4  Stakes Wins  Success_Rate
1  1  1  0  0     800   60         7.50%
2  1  0  1  0     850   45         5.29%
3  1  0  0  1  150000   10         0.01%
4  1  1  1  0     300   25         8.33%
5  1  1  0  1    1800   65         3.61%
6  1  0  1  1    1900   55         2.89%
7  1  1  1  1     700   40         5.71%
8  1  0  0  0 3000000   10      0.00333%

其中n1是我的通用播放器,在这种情况下,我已经描述了所有组合 .

为了单独从玩家{1}计算我的“基数”联盟 Value ,我希望执行计算:0.00333%(成功率)所有赌注,即0.00333%(800 850 150000 300 1800 1900 700 3000000)= 105

然后,我将为{2},{3}和{4}设置零值,因为它们在此示例中从不“单独”播放 .

为了计算我的第一对联盟 Value ,我希望进行计算:7.5%(800 300 1800 700)0.00333%(850 150000 1900 3000000)= 375

这是通过他们所参加的赌注来计算玩家{1,2}基本赢率(7.5%),加上玩家{1}基本赢率(0.00333%),因为他在该玩家{2}中所具有的组合没有 - 即独家集合 .

对于其他独特组合重复该逻辑 . 例如,第4行将是{1,2,3}的组合,因此计算结果为:7.5%(800 1800)5.29%(850 1900)8.33%(300 700)0.00333%(3000000 150000)= 529描述性地为将{1,2}的成功率设置为{3}中不显示的组合,{1,3}显示{2}不显示,{1,2}}显示的成功率,以及基础播放器{1}通过示例,其中{2}和{3}都不出现 .

因此,我的预期结果应该如此:

c(105,0,0,0,  375,304,110,0,0,0,  529,283,246,0, 400)

其中前四个数字是单人组合{1} {2} {3}和{4},接下来的六个数字是两个玩家组合{1,2} {1,3} {1,4}(和null case {2,3} {2,4} {3,4}不存在),接下来的四个是三个玩家组合{1,2,3} {1,2,4} {1, 3,4}和空案例{2,3,4},最后是完整的组合集{1,2,3,4} .

然后我将其输入到包的 DefineGame 函数中以创建我的联盟对象 .

感谢任何帮助:我试图尽可能具有描述性 . 我真的不知道从哪里开始生成必要的集合并设置排除 .