【问题标题】:For loop to sum each column of a matrix in RFor循环对R中矩阵的每一列求和
【发布时间】:2019-09-15 10:19:38
【问题描述】:

对于以下矩阵:

my_matrix<-matrix(seq(from=1,to=100,by=2))

如果我想计算每列的总和,我只需将命令如下:colSums(my_matrix)

但是,我需要在不使用 colSums 函数的情况下创建与 colSums(my_matrix) 的等效项,而是使用 for 循环。

请大家帮忙!!!

【问题讨论】:

  • apply(my_matrix, 2, sum)?

标签: r for-loop


【解决方案1】:

Sue,你可以试试这个简单的循环,希望它有助于解决你的问题。

sum <- 0
for(i in 1:ncol(my_matrix)){
  sum[i] <- sum(my_matrix[,i])
}

【讨论】:

    【解决方案2】:

    如果您明确想使用for 循环,这是一种方法:

    mat <- matrix(1:50, byrow = TRUE, ncol = 10)
    all_vals <- numeric(ncol(mat))
    for (i in seq(ncol(mat))) {
       all_vals[i] <- sum(mat[, i])
    }
    
    all_vals
    #[1] 105 110 115 120 125 130 135 140 145 150
    

    它给出与

    相同的值
    colSums(mat)
    #[1] 105 110 115 120 125 130 135 140 145 150
    

    【讨论】:

    • 非常感谢!!!我稍微调整了一下以解决我的问题,但效果很好!!!你太棒了!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多