循环遍历R中列表中的项目

Looping through items on a list in R

这可能是一个简单的问题,但我是 R 的新手。 我想做的是对列表的索引执行某种加法,但是一旦达到最大值,它就会返回到该列表中的第一个值并从那里重新开始。

例如:

x <-2
data <- c(0,1,2,3,4,5,6,7,8,9,10,11)

data[x]
1

data[x+12]
1

data[x+13]
3

或功能等效的东西。最后我希望能够做类似

的事情
v=6
x=8
y=9
z=12
values <- c(v,x,y,z)
data <- c(0,1,2,3,4,5,6,7,8,9,10,11)
set <- c(data[values[1]],data[values[2]], data[values[3]],data[values[4]])

set
5 7 8 11

values <- values + 8

set
1 3 4 7

我已经尝试了一些对我的列表长度进行加法和减法的方法,但它在较低的数字上效果不佳。 我希望这是一个足够清楚的解释,

提前致谢!

这里我们不需要循环,因为 vectors 可以将长度 >= 1 的向量作为索引

data[values]
#[1]  5  7  8 11

注意:两个对象都是 vector 而不是 list

如果我们需要重新设置索引

values <- values + 8
ifelse(values > length(data), values - length(data) - 1, values) 
#[1] 1 3 4 7