R中的随机元素乘法
randomized element-wise multiplication in R
我一直在网站上寻找问题的答案,我是 R 的新手,所以我希望这甚至是可能的。我有两个大型模拟矩阵(A = 100,000 x 50 和 B = 10,000 x 50),我想按行随机乘以元素。
基本上我希望 A 中的每一行随机 select 来自 B 的一行以进行逐元素乘法。
答:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 1 1 1 1
[3,] 1 1 1 1 1
[4,] 1 1 1 1 1
[5,] 1 1 1 1 1
[6,] 1 1 1 1 1
[7,] 1 1 1 1 1
[8,] 1 1 1 1 1
[9,] 1 1 1 1 1
[10,] 1 1 1 1 1
还有
乙:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
[4,] 4 4 4 4 4
[5,] 5 5 5 5 5
是否有一个运算符可以遍历 A 的行并随机 select 从 B 到对的一行以进行元素乘法?对于这样的结果:
C <- A&*&B
C
A[1,]*B[3,]
A[2,]*B[1,]
A[3,]*B[2,]
A[4,]*B[5,]
A[5,]*B[3,]
A[6,]*B[4,]
A[7,]*B[1,]
A[8,]*B[5,]
A[9,]*B[2,]
A[10,]*B[2,]
谢谢!
试试这个:
row_id <- sample(1:nrow(B), nrow(A), replace = TRUE)
A * B[row_id, ]
我想我只需要解释一下sample()
是做什么的。考虑:
sample(1:5, 10, replace = TRUE)
[1] 4 5 2 4 1 2 2 1 2 5
我没有通过set.seed()
设置随机种子,所以当你运行它时,你会得到不同的结果。但你只需要知道:它是随机的。
我一直在网站上寻找问题的答案,我是 R 的新手,所以我希望这甚至是可能的。我有两个大型模拟矩阵(A = 100,000 x 50 和 B = 10,000 x 50),我想按行随机乘以元素。
基本上我希望 A 中的每一行随机 select 来自 B 的一行以进行逐元素乘法。
答:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 1 1 1 1
[3,] 1 1 1 1 1
[4,] 1 1 1 1 1
[5,] 1 1 1 1 1
[6,] 1 1 1 1 1
[7,] 1 1 1 1 1
[8,] 1 1 1 1 1
[9,] 1 1 1 1 1
[10,] 1 1 1 1 1
还有 乙:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
[4,] 4 4 4 4 4
[5,] 5 5 5 5 5
是否有一个运算符可以遍历 A 的行并随机 select 从 B 到对的一行以进行元素乘法?对于这样的结果:
C <- A&*&B
C
A[1,]*B[3,]
A[2,]*B[1,]
A[3,]*B[2,]
A[4,]*B[5,]
A[5,]*B[3,]
A[6,]*B[4,]
A[7,]*B[1,]
A[8,]*B[5,]
A[9,]*B[2,]
A[10,]*B[2,]
谢谢!
试试这个:
row_id <- sample(1:nrow(B), nrow(A), replace = TRUE)
A * B[row_id, ]
我想我只需要解释一下sample()
是做什么的。考虑:
sample(1:5, 10, replace = TRUE)
[1] 4 5 2 4 1 2 2 1 2 5
我没有通过set.seed()
设置随机种子,所以当你运行它时,你会得到不同的结果。但你只需要知道:它是随机的。