на вашем примере:
a <- list(thing1=1:5,
thing2=6:10)
Существует множество способов циклического перемещения по элементам списка:
anames <- names(a)
anames
# [1] "thing1" "thing2"
for(i in 1:length(anames)) {
print(a[[anames[i]]])
}
# [1] 1 2 3 4 5
# [1] 6 7 8 9 10
, используя этот индекс, вы также можете установить значение
for(i in 1:length(anames)) {
a[[anames[i]]] <- 5*(i+2)+1:5
print(a[[anames[i]]])
}
# [1] 16 17 18 19 20
# [1] 21 22 23 24 25
или вы можете напрямую использовать индекс
for(i in 1:length(anames)) {
a[[i]] <- 5*(i+2)+1:5
print(a[[anames[i]]])
}
# same result
, и вы можете использовать
b <- lapply(a, function(x) {
x+15
})
b$thing1
#[1] 16 17 18 19 20
Я не думаю, что есть чистый способ сделать это с помощью команды assign