0

と の組み合わせを使用するforwhile、私の問題はこの例に似ています。ベクトル x の最初の要素に 1 を追加し、要素 2:4 をスキップし、ベクトル x の最後まで 5 番目の要素に 1 を追加します。

j <- 0
x <- c(rep(1, 4), 5:7)

for (i in 1:length(x)){
  x[i] <- x[i] + 1 
  while (j == 0){
    i <- i + 1
    if(x[i] != 1) j <- 1
    print(paste('in:', i))
  }
print(paste('out:', i))
}

結果は、i 値が変化しないことを示しています。Rで変更できますか?

[1] "in: 2"
[1] "in: 3"
[1] "in: 4"
[1] "in: 5"
[1] "out: 5"  # look!!!
[1] "out: 2"
[1] "out: 3"
[1] "out: 4"
[1] "out: 5"
[1] "out: 6"
[1] "out: 7"
4

3 に答える 3

0

または警告なし

x <- c(rep(1, 4), 5:7)
increment.position <- seq(1, length(x), by = 5)
x[increment.position] <- x[increment.position] + 1
于 2013-08-27T09:15:45.020 に答える