将值分配给R中的矩阵

时间:2015-07-27 06:34:33

标签: r matrix coin-flipping

我无法在堆栈交换中找到解决方案。

我有以下示例矩阵(仅显示前8个值),显示20个公平硬币翻转的总和(head = 1,tails = 0)。

print(Flips)
     [,1]
 [1,] 16  
 [2,] 11  
 [3,]  8   
 [4,]  9   
 [5,]  9   
 [6,]  7   
 [7,] 10  
 [8,] 14  

我有所有可能的成功翻转(头部)的p值,0到20保存在一个单独的对象中,pvalues(使用二项分布计算)

read.table("p_values.txt", header=T)
   ID Heads    p_value
1   1     0 0.0000010
2   2     1 0.0000191
3   3     2 0.0001812
4   4     3 0.0010872
5   5     4 0.0046206
6   6     5 0.0147858
7   7     6 0.0369644
8   8     7 0.0739288
9   9     8 0.1201344
10 10     9 0.1601791
11 11    10 0.1761971
12 12    11 0.1601791
13 13    12 0.1201344
14 14    13 0.0739288
15 15    14 0.0369644
16 16    15 0.0147858
17 17    16 0.0046206
18 18    17 0.0010872
19 19    18 0.0001812
20 20    19 0.0000191
21 21    20 0.0000010

我想要做的是为矩阵“Flips”分配一个新列,它根据我在p值文件中的数据为每一行分配一个p值。

因此,例如,新矩阵的p值为0.00462055,分配给行[,1]。我是R编程的新手,我知道如何使用cbind分配一个新列,但我不知道如何让R为其相应的成功次数/ 20分配一个p值... < / p>

1 个答案:

答案 0 :(得分:1)

如果未订购数据,您可以使用match

 cbind(Flips, df1[,3][match(Flips[,1], df1$Heads)])