【发布时间】:2020-01-04 13:59:14
【问题描述】:
我刚开始使用 R,但我对以下问题感到非常沮丧:我试图将在 for 循环中完成的一些计算的值存储到我之前定义的向量中。问题是如何进行索引,因为 for 循环将执行的次数来迭代代码取决于用户的输入,所以变量 i 不一定必须从 1 开始,它可以从 80 开始例如,这就是为什么它很困难。
我在其他 StackOverflow 帖子上搜索了很多,但没有找到我正在寻找的答案。这其实是我第一次问问题,因为我很固执。我曾想过创建另一个 for 循环,但不知道它是如何工作的。我确信有一个简单的解决方案,但也许我还不知道确切的功能,因为我还在学习。
my_vector <- vector(mode="numeric")
#Suppose the user's input was 80:84, which gets stored in "number",
#where "number" is just a function argument that encompasses everything,
#and on which the for loop depends therefore
for(i in number) {
#insert the calculation here, let's say it is i+3
result <- i+3
my_vector[i] <- result
}
我希望 my_vector 的长度为 4(在这种情况下)并包括数字 83、84、85 和 86,但是对于 my_vector,以 i 开头的索引是 80,而不是 1,这就是问题所在。
如何根据迭代将存储在 my_vector 索引中的这 4 个结果从 1 变为 4?
非常感谢。
【问题讨论】:
-
80:84是五个值,即您需要一个长度为 5 的向量。 -
my_vector <- vector(mode="numeric", length=length(number))好多了。 -
重要提示:
i in number表示i = 80,然后是i = 81,以此类推,my_vector的第一个82值等于NA!
标签: r loops for-loop vector indexing