在 R 中的矩阵的列内创建累积分布
Creating a cumulative distribution within a column of a matrix in R
我的情况是有 c 个概率分布。每个分布都有 r 个可能性。所以我可以用 (r x c) 矩阵对此进行建模,其中第 c 列表示第 c 个概率分布。 [r,c] 处的元素表示从第 c 个概率分布中获得第 r 个可能性的概率。我将此矩阵命名为 probDist。
我想生成一个累积概率分布矩阵,使得矩阵中[r,c]处的每个元素都是[1,c]到[r-1,c]的元素之和。
我正在用R写代码,目前我的代码如下:
cumProbDist <- probDist
for(c in 1:ncol(probDist))
cumProbDist[c] <- cumsum(probDist[c])
它工作正常,但我知道由于效率低下,for 函数在 R 代码中被强烈反对。 我如何重写这段代码以利用 *apply 函数族(或类似高效的函数)?
cumProbDist = apply(probDist,2,cumsum)
我的情况是有 c 个概率分布。每个分布都有 r 个可能性。所以我可以用 (r x c) 矩阵对此进行建模,其中第 c 列表示第 c 个概率分布。 [r,c] 处的元素表示从第 c 个概率分布中获得第 r 个可能性的概率。我将此矩阵命名为 probDist。
我想生成一个累积概率分布矩阵,使得矩阵中[r,c]处的每个元素都是[1,c]到[r-1,c]的元素之和。
我正在用R写代码,目前我的代码如下:
cumProbDist <- probDist
for(c in 1:ncol(probDist))
cumProbDist[c] <- cumsum(probDist[c])
它工作正常,但我知道由于效率低下,for 函数在 R 代码中被强烈反对。 我如何重写这段代码以利用 *apply 函数族(或类似高效的函数)?
cumProbDist = apply(probDist,2,cumsum)