2017-02-07 8 views
-5

У меня есть целочисленные значения, которые называются player.i.team.j.coach.k, где i пробегает значения 1-11, j диапазонов значений над значениями 1-30 и k пробегает значения 1-10.Как присвоить значения i-му индексу списка с помощью цикла?

Я пытаюсь хранить 11 игроков каждой команды j и тренер k в списке (каждый тренер будет назначен 30 команд), например

team.j.coach.k <- c(player.1.team.j.coach.k,player.2.team.j.coach.k,player.3.team.j.coach.k,player.4.team.j.coach.k,player.5.team.j.coach.k,player.6.team.j.coach.k,player.7.team.j.coach.k,player.8.team.j.coach.k,player.9.team.j.coach.k,player.10.team.j.coach.k,player.11.team.j.coach.k) 

И я пытаюсь использовать петли для этого. Проблема заключается в том, что мой код не работает:

Сначала я определить пустые списки, где я буду хранить свои команды:

for (j in 1:30){for (k in 1:10){assign(paste0("team.",j,".coach.",k),c())}} 

Так, например

> team.1.coach.1 
NULL 

Но теперь следующий код сгенерирует ошибка

for (i in 1:11){for (j in 1:30){for (k in 1:10){assign(get(paste0("team.",j,".coach.",k))[i],get(paste0("player.",i,".team.",j,".coach.",k)))}}} 

, а ошибка - «недопустимый первый аргумент». В качестве альтернативы, следующий код выдает ошибку, а

for (i in 1:11){for (j in 1:30){for (k in 1:10){get(paste0("team.",j,".coach.",k))[i]<-get(paste0("player.",i,".team.",j,".coach.",k))}}} 

В случае, если ошибка является «объектом присвоения расширяется до объекта, не являющегося языком».

Примечание: Я создал объекты player.i.team.j.coach.k, используя assign() и цикл, поэтому они еще хранятся в списке.

+1

Этот вопрос не очень понятно. Вы думали об использовании одного 3D-массива вместо нескольких объектов? – C8H10N4O2

+0

@ C8H10N4O2 мой вопрос заключается в том, как хранить в списке 11 игроков каждой команды (и соответствующего тренера), используя цикл. Я опубликовал две попытки, которые потерпели неудачу. – user322778

+0

Возможно, что-то вроде 'myList <- list; for (i in ...) ... mylist [paste ("team", j, "coach", k, sep = ".")] <- someStuff'. Это должно создать именованный список во время цикла. коррекция, благодаря C8H10N4O2. – lmo

ответ

-2

ОК, после того, как я так много борется и наблюдаю за моей репутацией, спускающейся в туалет из-за нескольких downvotes, мне удалось решить мою проблема. Я использовал переменную count внутри моего цикла, чтобы хранить все в одном списке, а затем разделив мой список в моих желаемых списках:

my.list<-c() 

count=0 

for (c in 1:10){for (b in 1:30){for (a in 1:11){assign(paste0("player.",a,".team.",b,".coach.",c),a+b+c);count=count+1;my.list[count]<-get(paste0("player.",a,".team.",b,".coach.",c))}}} 

И теперь я разделил my.list, чтобы получить списки, которые я хочу:

for (c in 1:10){for (b in 1:30){assign(paste0("team.",b,".coach.",c),my.list[(11*(b+30*(c-1))-10):(11*(b+30*(c-1)))])}} 

И я получаю именно то, что я хочу:

> for (b in 1:30){for (c in 1:10){print(get(paste0("team.",b,".coach.",c)))}} 
[1] 3 4 5 6 7 8 9 10 11 12 13 
[1] 4 5 6 7 8 9 10 11 12 13 14 
[1] 5 6 7 8 9 10 11 12 13 14 15 
[1] 6 7 8 9 10 11 12 13 14 15 16 
[1] 7 8 9 10 11 12 13 14 15 16 17 
[1] 8 9 10 11 12 13 14 15 16 17 18 
[1] 9 10 11 12 13 14 15 16 17 18 19 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 4 5 6 7 8 9 10 11 12 13 14 
[1] 5 6 7 8 9 10 11 12 13 14 15 
[1] 6 7 8 9 10 11 12 13 14 15 16 
[1] 7 8 9 10 11 12 13 14 15 16 17 
[1] 8 9 10 11 12 13 14 15 16 17 18 
[1] 9 10 11 12 13 14 15 16 17 18 19 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 5 6 7 8 9 10 11 12 13 14 15 
[1] 6 7 8 9 10 11 12 13 14 15 16 
[1] 7 8 9 10 11 12 13 14 15 16 17 
[1] 8 9 10 11 12 13 14 15 16 17 18 
[1] 9 10 11 12 13 14 15 16 17 18 19 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 6 7 8 9 10 11 12 13 14 15 16 
[1] 7 8 9 10 11 12 13 14 15 16 17 
[1] 8 9 10 11 12 13 14 15 16 17 18 
[1] 9 10 11 12 13 14 15 16 17 18 19 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 7 8 9 10 11 12 13 14 15 16 17 
[1] 8 9 10 11 12 13 14 15 16 17 18 
[1] 9 10 11 12 13 14 15 16 17 18 19 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 8 9 10 11 12 13 14 15 16 17 18 
[1] 9 10 11 12 13 14 15 16 17 18 19 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 9 10 11 12 13 14 15 16 17 18 19 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 10 11 12 13 14 15 16 17 18 19 20 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 11 12 13 14 15 16 17 18 19 20 21 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 12 13 14 15 16 17 18 19 20 21 22 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 13 14 15 16 17 18 19 20 21 22 23 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 14 15 16 17 18 19 20 21 22 23 24 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 15 16 17 18 19 20 21 22 23 24 25 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 16 17 18 19 20 21 22 23 24 25 26 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 17 18 19 20 21 22 23 24 25 26 27 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 18 19 20 21 22 23 24 25 26 27 28 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 19 20 21 22 23 24 25 26 27 28 29 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 20 21 22 23 24 25 26 27 28 29 30 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 21 22 23 24 25 26 27 28 29 30 31 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 22 23 24 25 26 27 28 29 30 31 32 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 23 24 25 26 27 28 29 30 31 32 33 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 24 25 26 27 28 29 30 31 32 33 34 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 25 26 27 28 29 30 31 32 33 34 35 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 26 27 28 29 30 31 32 33 34 35 36 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 35 36 37 38 39 40 41 42 43 44 45 
[1] 27 28 29 30 31 32 33 34 35 36 37 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 35 36 37 38 39 40 41 42 43 44 45 
[1] 36 37 38 39 40 41 42 43 44 45 46 
[1] 28 29 30 31 32 33 34 35 36 37 38 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 35 36 37 38 39 40 41 42 43 44 45 
[1] 36 37 38 39 40 41 42 43 44 45 46 
[1] 37 38 39 40 41 42 43 44 45 46 47 
[1] 29 30 31 32 33 34 35 36 37 38 39 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 35 36 37 38 39 40 41 42 43 44 45 
[1] 36 37 38 39 40 41 42 43 44 45 46 
[1] 37 38 39 40 41 42 43 44 45 46 47 
[1] 38 39 40 41 42 43 44 45 46 47 48 
[1] 30 31 32 33 34 35 36 37 38 39 40 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 35 36 37 38 39 40 41 42 43 44 45 
[1] 36 37 38 39 40 41 42 43 44 45 46 
[1] 37 38 39 40 41 42 43 44 45 46 47 
[1] 38 39 40 41 42 43 44 45 46 47 48 
[1] 39 40 41 42 43 44 45 46 47 48 49 
[1] 31 32 33 34 35 36 37 38 39 40 41 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 35 36 37 38 39 40 41 42 43 44 45 
[1] 36 37 38 39 40 41 42 43 44 45 46 
[1] 37 38 39 40 41 42 43 44 45 46 47 
[1] 38 39 40 41 42 43 44 45 46 47 48 
[1] 39 40 41 42 43 44 45 46 47 48 49 
[1] 40 41 42 43 44 45 46 47 48 49 50 
[1] 32 33 34 35 36 37 38 39 40 41 42 
[1] 33 34 35 36 37 38 39 40 41 42 43 
[1] 34 35 36 37 38 39 40 41 42 43 44 
[1] 35 36 37 38 39 40 41 42 43 44 45 
[1] 36 37 38 39 40 41 42 43 44 45 46 
[1] 37 38 39 40 41 42 43 44 45 46 47 
[1] 38 39 40 41 42 43 44 45 46 47 48 
[1] 39 40 41 42 43 44 45 46 47 48 49 
[1] 40 41 42 43 44 45 46 47 48 49 50 
[1] 41 42 43 44 45 46 47 48 49 50 51 
-1
x = c(3,5,6) 
x[2] = 9 
x # [1] 3 9 6 

Помогла ли это? (Перепишите значение в i-й индекс списка без назначения и использования цикла)

+0

В R, если вы это сделаете, присвойте ему подсказку для функции назначения. –

+0

Хм нет, этот метод терпит неудачу, когда я пытаюсь выполнить его в цикле, также присваивать() не удается – user322778

Смежные вопросы