0
我想用R.迴路和模運算中的R
做出這樣的循環,其中i = 1個輸出將是
1
2
3
對於i = 2輸出將是
2
3
1
對於i = 3的輸出將是
3
1
2
即是out投入是連續的整數。正是當整數達到4時,它返回1並繼續。我想我必須使用模塊化操作,我該怎麼做?
我想用R.迴路和模運算中的R
做出這樣的循環,其中i = 1個輸出將是
1
2
3
對於i = 2輸出將是
2
3
1
對於i = 3的輸出將是
3
1
2
即是out投入是連續的整數。正是當整數達到4時,它返回1並繼續。我想我必須使用模塊化操作,我該怎麼做?
如果你有
a <- 1:3
的值,如果i
,你得到的序列與
f <- function(i) (a+i+1) %% length(a) +1
f(1)
# [1] 1 2 3
f(2)
# [1] 2 3 1
f(3)
# [1] 3 1 2
f(4)
# [1] 1 2 3
請注意,它重新開始4
這是我的解決方案:
f <- function(i) { x <- i:(i+2) %% 3; x[x==0] <- 3; x }
for (i in 1:5) print(f(i))
這是第二個解決方案:
r <- matrix(c(3,1,2, 1,2,3, 2,3,1),3)
for (i in 1:5) print(r[i %% 3 + 1,])