也许我在想这个问题但是我需要创建一个for循环& if语句在我的数据集中找到最高值。我们还必须编写一份打印声明,然后将其打印出来。那天。有93排&初始矩阵中有4列。第4列包含所需数据。这些日子在第1栏。
我根本不懂编程。到目前为止,这就是我得到的:
我使用数据创建了一个带有列的向量:
only.data <- c(data[,4])
这是我在for
&amp; if
声明:
for (counter in 1:93) {
if (only.data >= data[,4])
print (only.data)
}
如何使用此方法将其吐出最高值?它打印最大值93次,这不是我想要的。我是否需要创建only.data
向量,还是可以使用原始矩阵?我还需要打印出最高值旁边的相应日期。
ps - 我知道我可以使用更快捷的max
函数,但这不是作业。
答案 0 :(得分:2)
好像你在作弊,因此我不会在这里发布一个完整的解决方案,但只能指出你正确的方向
data[,4]
已经是一个向量,没有任何理由在其上使用c()
。也没有理由将其保存在新对象only.data
中,尽管它可能会使您的循环更快,因为它不需要在每个循环中进行索引。for()
中指定索引。虽然您指定了一个索引(counter
),但您还没有使用它,因此无论您做什么,您的循环都会打印only.data
。if
所做的就是检查每次迭代是否only.data >= only.data
(这显然是不必要的)only.data[counter]
进行比较,以检查它是否更大,然后在不是为了说明我的最后一点,请考虑一个玩具示例
set.seed(1)
only.data <- sample(10,10)
only.data
#[1] 3 4 5 7 2 8 9 6 10 1
你可以看到最大值在第9位,现在我们将这个向量的第一个值赋给一个虚拟变量,并尝试使用for
循环来找到最大值
dummy <- only.data[1]
dummy
## [1] 3
for (counter in only.data) {
if (counter > dummy) dummy <- counter
}
dummy
## [1] 10