【问题标题】:Doing a matrix with absolute frequencies做一个绝对频率的矩阵
【发布时间】:2015-05-29 17:40:15
【问题描述】:

我有两个矩阵: 矩阵 1,一个带有 :

的向量
matrix(c(0.16, 0.24, 0.16, 0.08, 0.09, 0.12, 0.06, 0.04, 0.04, 0.01))

实际上,我使用“FOR”函数创建它,使用频率为 0.4、0.3、0.2、0.1 的 Punnett 方格。

其次,我有矩阵 2:

                [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]      [,10]    
      [1,] "A 1 A 1" "B 1 B 1" "C 1 C 1" "D 1 D 1" "E 1 E 1" "F 1 F 1" "G 1 G 1" "H 1 H 1" "I 1 I 1" "J 1 J 1"
      [2,] "A 1 A 2" "B 1 B 2" "C 1 C 2" "D 1 D 2" "E 1 E 2" "F 1 F 2" "G 1 G 2" "H 1 H 2" "I 1 I 2" "J 1 J 2"
      [3,] "A 1 A 3" "B 1 B 3" "C 1 C 3" "D 1 D 3" "E 1 E 3" "F 1 F 3" "G 1 G 3" "H 1 H 3" "I 1 I 3" "J 1 J 3"
      [4,] "A 1 A 4" "B 1 B 4" "C 1 C 4" "D 1 D 4" "E 1 E 4" "F 1 F 4" "G 1 G 4" "H 1 H 4" "I 1 I 4" "J 1 J 4"
      [5,] "A 2 A 2" "B 2 B 2" "C 2 C 2" "D 2 D 2" "E 2 E 2" "F 2 F 2" "G 2 G 2" "H 2 H 2" "I 2 I 2" "J 2 J 2"
      [6,] "A 2 A 3" "B 2 B 3" "C 2 C 3" "D 2 D 3" "E 2 E 3" "F 2 F 3" "G 2 G 3" "H 2 H 3" "I 2 I 3" "J 2 J 3"
      [7,] "A 2 A 4" "B 2 B 4" "C 2 C 4" "D 2 D 4" "E 2 E 4" "F 2 F 4" "G 2 G 4" "H 2 H 4" "I 2 I 4" "J 2 J 4"
      [8,] "A 3 A 3" "B 3 B 3" "C 3 C 3" "D 3 D 3" "E 3 E 3" "F 3 F 3" "G 3 G 3" "H 3 H 3" "I 3 I 3" "J 3 J 3"
      [9,] "A 3 A 4" "B 3 B 4" "C 3 C 4" "D 3 D 4" "E 3 E 4" "F 3 F 4" "G 3 G 4" "H 3 H 4" "I 3 I 4" "J 3 J 4"
     [10,] "A 4 A 4" "B 4 B 4" "C 4 C 4" "D 4 D 4" "E 4 E 4" "F 4 F 4" "G 4 G 4" "H 4 H 4" "I 4 I 4" "J 4 J 4"

我想要一个新表(行 = 100,列 = 10),矩阵 2 的每一列具有矩阵 1 的频率。所以我将有 16 次“A1A1”,24 次“A1A2”等等。其他列也是如此。 但我想对任何频率(矩阵 1)和矩阵 2 的任意数量的列行执行此操作。

【问题讨论】:

  • JAL,我也在尝试函数“FOR”:pop.mae
  • rep 函数与apply 结合使用,其中应用按列完成。您需要将该频率向量转换为总和为 100 的整数向量(输出矩阵中所需的列数)
  • Pafnucy,我觉得我很愚蠢,jeje..实际上我已经在其他情况下使用了函数 apply ,但我无法想象如何“混合”这些矩阵并做一个100 行和 10 列的矩阵 2 中的数据使用函数 apply,如果我没有要求太多,你能帮我这样做吗?非常感谢 JAL 和 Pafnucy!

标签: r matrix replication


【解决方案1】:

试试

 out <- matrix(rep(c(m2),m1[row(m2)]*100),100,10)
 dim(out)
 #[1] 100  10

数据

m1 <- matrix(c(0.16, 0.24, 0.16, 0.08, 0.09, 0.12, 0.06, 0.04, 0.04, 0.01))

m2 <-  structure(c("A 1 A 1", "A 1 A 2", "A 1 A 3", "A 1 A 4", "A 2 A 2", 
"A 2 A 3", "A 2 A 4", "A 3 A 3", "A 3 A 4", "A 4 A 4", "B 1 B 1", 
"B 1 B 2", "B 1 B 3", "B 1 B 4", "B 2 B 2", "B 2 B 3", "B 2 B 4", 
"B 3 B 3", "B 3 B 4", "B 4 B 4", "C 1 C 1", "C 1 C 2", "C 1 C 3", 
"C 1 C 4", "C 2 C 2", "C 2 C 3", "C 2 C 4", "C 3 C 3", "C 3 C 4", 
"C 4 C 4", "D 1 D 1", "D 1 D 2", "D 1 D 3", "D 1 D 4", "D 2 D 2", 
"D 2 D 3", "D 2 D 4", "D 3 D 3", "D 3 D 4", "D 4 D 4", "E 1 E 1", 
"E 1 E 2", "E 1 E 3", "E 1 E 4", "E 2 E 2", "E 2 E 3", "E 2 E 4", 
"E 3 E 3", "E 3 E 4", "E 4 E 4", "F 1 F 1", "F 1 F 2", "F 1 F 3", 
"F 1 F 4", "F 2 F 2", "F 2 F 3", "F 2 F 4", "F 3 F 3", "F 3 F 4", 
"F 4 F 4", "G 1 G 1", "G 1 G 2", "G 1 G 3", "G 1 G 4", "G 2 G 2", 
"G 2 G 3", "G 2 G 4", "G 3 G 3", "G 3 G 4", "G 4 G 4", "H 1 H 1", 
"H 1 H 2", "H 1 H 3", "H 1 H 4", "H 2 H 2", "H 2 H 3", "H 2 H 4", 
"H 3 H 3", "H 3 H 4", "H 4 H 4", "I 1 I 1", "I 1 I 2", "I 1 I 3", 
"I 1 I 4", "I 2 I 2", "I 2 I 3", "I 2 I 4", "I 3 I 3", "I 3 I 4", 
"I 4 I 4", "J 1 J 1", "J 1 J 2", "J 1 J 3", "J 1 J 4", "J 2 J 2", 
"J 2 J 3", "J 2 J 4", "J 3 J 3", "J 3 J 4", "J 4 J 4"), .Dim = c(10L, 
10L))

【讨论】:

  • 非常感谢阿克伦!完美!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
相关资源
最近更新 更多