У меня есть целочисленные значения, которые называются 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()
и цикл, поэтому они еще хранятся в списке.
Этот вопрос не очень понятно. Вы думали об использовании одного 3D-массива вместо нескольких объектов? – C8H10N4O2
@ C8H10N4O2 мой вопрос заключается в том, как хранить в списке 11 игроков каждой команды (и соответствующего тренера), используя цикл. Я опубликовал две попытки, которые потерпели неудачу. – user322778
Возможно, что-то вроде 'myList <- list; for (i in ...) ... mylist [paste ("team", j, "coach", k, sep = ".")] <- someStuff'. Это должно создать именованный список во время цикла. коррекция, благодаря C8H10N4O2. – lmo