首页 > 解决方案 > 在R中从列的第一个值到列的最后一个值进行循环

问题描述

如何在 R 中创建一个从列的第一行到该列末尾的循环?类似于从 x[1,2] 到 tail(x[,2], n=1)

标签: rloopsfor-looptime-series

解决方案


你可以使用nrow.

(m <- matrix(1:18, 6, 3))
#      [,1] [,2] [,3]
# [1,]    1    7   13
# [2,]    2    8   14
# [3,]    3    9   15
# [4,]    4   10   16
# [5,]    5   11   17
# [6,]    6   12   18

for (i in 1:nrow(m)) {
  m[i, 2] <- m[i, 2] + 100
  }
m
#      [,1] [,2] [,3]
# [1,]    1  107   13
# [2,]    2  108   14
# [3,]    3  109   15
# [4,]    4  110   16
# [5,]    5  111   17
# [6,]    6  112   18

但是,由于 R 是矢量化的,因此您可以取整列并进行矢量运算。

m[, 3] <- m[, 3] + 100
m
#      [,1] [,2] [,3]
# [1,]    1  107  113
# [2,]    2  108  114
# [3,]    3  109  115
# [4,]    4  110  116
# [5,]    5  111  117
# [6,]    6  112  118

推荐阅读