Если вам действительно нужны отдельные переменные, вы можете использовать assign
, что дает вам полный вызов assign(name, raster(b))
.
Однако я сомневаюсь, действительно ли полезно иметь разные переменные для многих объектов, которые выхочу обрабатывать таким же образом (я предполагаю, что ваши реальные данные имеют более 3 элементов).Потому что на следующем шаге вы хотите что-то с ними сделать, и вам снова нужны эти имена ...
По моему опыту, работать со (именованным) списком намного проще, что вы можете получить таким образом:
library(raster)
a<-c(1985,1986,2004)
Bandas <- lapply(a, function(name) {
b <- paste("C:/Users/franc/Documents/Fran/Tesis/Sin sincronizar/Imagenes Landsat/",name)
raster(b)
})
names(Bandas) <- paste("Banda3_", a, sep ='')
Теперь у вас есть список, называемый Bandas, с 3 именованными элементами.
Для доступа, например, к 2004 году, вы можете использовать Bandas$Banda3_2004
или name <- 'Bandar_2004'; Banda[['name']]
Но у вас есть не только чистое рабочее пространство, но и с вашими объектами проще:
ModifiedBandas <- lapply(Bandas, function(ban) {
_do something with an individual file_
})
for (ban in Bandas) {
print(ban)
}
И я немного изменил имена, потому что из документации:
Идентификаторы состоят из последовательности букв, цифр, точки ('.') И подчеркивания.Они не должны начинаться с цифры или знака подчеркивания или с точки, за которой следует цифра.
Вы можете обойти это (и assign
соответствует другим именам), но это означает, что вы должныиспользуйте кавычки ("` ") вокруг имени, чтобы обратиться к нему.