【问题标题】:For loop returning just one output in RFor 循环在 R 中只返回一个输出
【发布时间】:2015-02-19 03:43:05
【问题描述】:

我从 csv 获取一个 49*49 矩阵作为输入,并尝试将总和打印为 49*49 矩阵,但我只得到一个值作为总和的输出。

w <- read.csv(file="ma.csv", header=F, sep=",");
sum <- 4
for(i in 1:49){
  for(j in 1:49)
  {
    sum = sum + w[i,j];

  }
}  

【问题讨论】:

  • 你想要得到的总和?
  • @Bruno 也许,创建一个与w 大小相同的空矩阵,并为每个 i,,j 分配值。或者可以使用outer。

标签: r loops for-loop matrix sum


【解决方案1】:

可能

w1 <- matrix(NA, ncol=3, nrow=3)
sum1 <- 4
for(i in 1:3){
 for(j in 1:3){
   w1[i,j] = sum1 + w[i,j];
   }
 }  
w1[] <- cumsum(w1)

或者没有任何循环

 w2 <- w 
 w2[] <- cumsum(w+sum1)
 identical(w2, w1)
 #[1] TRUE

数据

set.seed(24)
w <- matrix(sample(0:20, 3*3, replace=TRUE), ncol=3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多