按顺序我有六张牌:9,8,5,10,2,6 我想编写一个代码,它将从列表中给出下一个值,当键入时,最后一个将再次返回到开头。
我尝试用" 2" (想要获得" 6"结果)并写道:
cards <- c(9,8,5,10,2,6)
o <- 1:6
if(karty[o] == 2) cat(karty[o+1])
然而,它根本不起作用:/任何帮助将不胜感激
答案 0 :(得分:0)
试试这个
cards_fun <- function(val){
if (val %in% cards[1:(length(cards)-1)]) ind = which(cards==val)+1 else if (val %in% cards[length(cards)]) ind = 1
cards[ind]
}
cards_fun(9)
cards_fun(6)
如果你想使用它,那真的很像上面评论中的模数建议
cards_fun2 <- function(val){
o <- 1:length(cards); cards[(o%%length(cards))[cards %in% val]+1]
}
cards_fun2(9)
cards_fun2(6)