我当然可以使用一个循环,但鉴于我的大数据矩阵,这很可能会永远。我有一个尺寸为5000x250的数据矩阵。每个主题的5000个值大约为1.现在我想要乘以每列(j)的所有值,如下所示:
x[1,j]*x[2,j]*x[3,j]...*x[5000,j]
有人可以告诉我如何以计算有效的方式做到这一点吗?感谢。
答案 0 :(得分:5)
您可以使用apply函数将其作为每行或每列中的prod:
data <- matrix(1:100, nrow = 10)
apply(data, 1, prod) #1 indicates rows, 2 indicates columns
##[1] 4.780159e+14 1.242689e+15 2.394833e+15 4.060163e+15 6.393839e+15
##[6] 9.585619e+15 1.386570e+16 1.951127e+16 2.685395e+16 3.628800e+16
#You get a vector with the result of multiply each element of each row
答案 1 :(得分:3)
查看?prod
data <- matrix(1:100, nrow = 10)
data
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 11 21 31 41 51 61 71 81 91
## [2,] 2 12 22 32 42 52 62 72 82 92
## [3,] 3 13 23 33 43 53 63 73 83 93
## [4,] 4 14 24 34 44 54 64 74 84 94
## [5,] 5 15 25 35 45 55 65 75 85 95
## [6,] 6 16 26 36 46 56 66 76 86 96
## [7,] 7 17 27 37 47 57 67 77 87 97
## [8,] 8 18 28 38 48 58 68 78 88 98
## [9,] 9 19 29 39 49 59 69 79 89 99
## [10,] 10 20 30 40 50 60 70 80 90 100
prod(data[, 2])
## [1] 670442572800
答案 2 :(得分:0)
eval(parse(text=paste(x[,j], collapse="*")))