简体   繁体   English

在给定一些初始代码的情况下编写for循环的问题

[英]Issues writing a for loop given some initial code

I'm trying to write a for loop with the information provided, but I'm running into some issues. 我正在尝试使用提供的信息编写一个for循环,但是遇到了一些问题。 I've written what I initially thought would be correct but it does not seem to be the case given the NAs. 我已经写了我最初认为正确的内容,但考虑到NA,情况似乎并非如此。

Long version: 长版:

x <- c(7, 10, 2)
x[4] <- (1/2)*x[2] - 1
x[5] <- (1/3)*x[3] - 1
x[6] <- (1/4)*x[4] - 1
x[7] <- (1/5)*x[5] - 1
x[8] <- (1/6)*x[6] - 1
x[9] <- (1/7)*x[7] - 1
#...
x[100] <- (1/98)*x[98] - 1

Attempted loop version: 尝试的循环版本:

x <- c(7, 10, 2)
for (i in 4:100) {x[i] <- x[i+1]<-(1/2)*x[i] - 1} 
x

[1]  7 10  2 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[19] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[37] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[55] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[73] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[91] NA NA NA NA NA NA NA NA NA NA NA

What should I do to fix this issue? 我应该怎么做才能解决这个问题?

Something like this? 像这样吗

x <- c(7, 10, 2)

x <- c(x, numeric(97))
for(i in 4:100)
  x[i] <- x[i - 2]/(i - 2) - 1

head(x, 10)
#[1]  7.0000000 10.0000000  2.0000000  4.0000000 -0.3333333  0.0000000
#[7] -1.0666667 -1.0000000 -1.1523810 -1.1250000

Are you trying to do something like this? 您是否正在尝试做这样的事情?

x <- c(1:100)

for(i in 4:100) {
  x[i] <- (1/(i-2)) * x[(i-2)] - 1}
x

[1]  1.000000  2.000000  3.000000  0.000000  0.000000 -1.000000 -1.000000 -1.166667 -1.142857 -1.145833 -1.126984 -1.114583 -1.102453 -1.092882
 [15] -1.084804 -1.078063 -1.072320 -1.067379 -1.063078 -1.059299 -1.055951 -1.052965 -1.050283 -1.047862 -1.045664 -1.043661 -1.041827 -1.040141
 [29] -1.038586 -1.037148 -1.035813 -1.034572 -1.033413 -1.032330 -1.031316 -1.030363 -1.029466 -1.028621 -1.027823 -1.027069 -1.026354 -1.025677
 [43] -1.025033 -1.024421 -1.023838 -1.023282 -1.022752 -1.022245 -1.021761 -1.021297 -1.020852 -1.020426 -1.020017 -1.019624 -1.019246 -1.018882
 [57] -1.018532 -1.018194 -1.017869 -1.017555 -1.017252 -1.016959 -1.016676 -1.016403 -1.016138 -1.015881 -1.015633 -1.015392 -1.015159 -1.014932
 [71] -1.014712 -1.014499 -1.014292 -1.014090 -1.013894 -1.013704 -1.013519 -1.013338 -1.013163 -1.012992 -1.012825 -1.012662 -1.012504 -1.012350
 [85] -1.012199 -1.012052 -1.011908 -1.011768 -1.011631 -1.011497 -1.011367 -1.011239 -1.011114 -1.010992 -1.010872 -1.010755 -1.010641 -1.010529
 [99] -1.010419 -1.010312

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM