首页 > 解决方案 > 有人可以为我分解第 4 行代码吗?这是在 R

问题描述

r=5  # 5 blocks
t=10 # 10 treatments
RCB=matrix(0, r, t)
for(i in 1:r)RCB[i,]=sample(1:t)
#rownames(RCB)=c("Block","Treatment")
data.frame(RCB)

有人可以为我分解第 4 行代码吗?这是R中的。作者正在尝试创建一个RCBD数据集,我没有编写此代码。我正在尝试学习 for 循环

标签: r

解决方案


这是我对第四行的解释。

  • for(i in 1:r)这指定了一个从 1 迭代到 的 for 循环r。在这个例子中,r5:是一种指定从一个整数到另一个整数的序列的方法,因此1:rc(1, 2, 3, 4, 5).
  • RCB[i, ]意味着对于每次迭代,访问i矩阵中的行。中有五行RCB。for 循环将一一访问每一行。
  • =是 R 中的赋值运算符。我们也可以使用<-.
  • sample(1:t)从 中抽取随机样本1:t。在此示例中,它是从1到的一个数字10。输出将存储到RCB.

在运行第 4 行之前,RCB矩阵如下。

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    0    0    0    0    0    0    0    0    0     0
[2,]    0    0    0    0    0    0    0    0    0     0
[3,]    0    0    0    0    0    0    0    0    0     0
[4,]    0    0    0    0    0    0    0    0    0     0
[5,]    0    0    0    0    0    0    0    0    0     0

在第 4 行之后,它变成了这样。

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    5    7    6    8    2    1    9    3   10     4
[2,]    5    3    2    8    9    4    7    1    6    10
[3,]    6    9   10    3    8    1    7    5    4     2
[4,]    2    1    5    9    4    3   10    7    6     8
[5,]    4    6    5    3   10    1    9    8    7     2

所有行都填充有从1到的随机数10


推荐阅读