You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言实现矩阵每行固定值计数、行对列值对统计及公式计算

R语言实现矩阵统计计算的循环方案

1. 准备基础数据与参数

首先定义输入矩阵和基础维度参数:

# 示例输入矩阵
A <- matrix(c(0,1,2,1,1,0,2,0,1), 3, 3)
n <- ncol(A) # 矩阵列数
N <- nrow(A) # 矩阵行数

2. 计算每行统计值与第一部分求和项

遍历每行统计1的出现次数,再计算第一部分的累加和:

ro <- numeric(N)
r1 <- numeric(N)
# 逐行统计ro和r1
for (i in 1:N) {
  ro[i] <- sum(A[i,] == 1)
  r1[i] <- n - ro[i]
}
# 计算第一部分求和结果
part1 <- sum(ro^4 - ro^3 - ro * r1)

3. 计算行对统计值与第二部分求和项

遍历所有a≠b的行对,统计对应列的值对数量,累加计算第二部分求和结果:

part2 <- 0
# 遍历所有无序行对,若需求为有序a≠b(即(a,b)和(b,a)都计入),可删除a < b的条件或最后将part2乘2
for (a in 1:(N-1)) {
  for (b in (a+1):N) {
    row_a <- A[a,]
    row_b <- A[b,]
    # 统计各类值对的出现次数
    roo <- sum((row_a == 0 & row_b == 0) | (row_a == 2 & row_b == 2))
    ro2 <- sum((row_a == 0 & row_b == 2) | (row_a == 2 & row_b == 0))
    # 计算当前行对的贡献并累加
    current_term <- roo * ro2 * (ro2*(72*ro2 - 99) - roo*(81*ro2 - 45) + 68)
    part2 <- part2 + current_term
  }
}

4. 计算最终结果B(k)

B_k <- part1 - part2

内容的提问来源于stack exchange,提问作者Umer Daraz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:09:04