0
我有以下顺序的六张卡片: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])
但是它不工作:/任何帮助,将不胜感激
我有以下顺序的六张卡片: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])
但是它不工作:/任何帮助,将不胜感激
试试这个
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)
你想要一个无限循环? –
使用'cards [o %% 6]'让它环绕。这是模数。 –