Перебирая пункты в списке в R - PullRequest
1 голос
/ 24 сентября 2019

это может быть простой вопрос, но я довольно плохо знаком с 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

Я пробовал кое-что с добавлением и вычитанием по длине моего списка, но это не работает на более низких числах.Я надеюсь, что это было достаточно четкое объяснение,

спасибо заранее!

1 Ответ

1 голос
/ 24 сентября 2019

Здесь нам не нужен цикл, поскольку vector s может принимать векторы длины> = 1 в качестве индекса

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

ПРИМЕЧАНИЕ. Оба объекта vector s, а не list

Если нам нужно сбросить индекс

values <- values + 8
ifelse(values > length(data), values - length(data) - 1, values) 
#[1] 1 3 4 7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...