Как Вы правильно указываете, аннулирование в этом случае полностью бессмысленно.
Назад на JDK1.3 у меня действительно на самом деле был случай с графиком чрезвычайно большого объекта, который также содержал много циклических ссылок в графике. Убирание нескольких ссылок действительно на самом деле улучшало времена GC вполне заметно.
я не уверен, применялось ли это с современным VM. Сборщики "мусора" стали все больше более умными.
Чтение всех CSV-файлов из папки и создание таких же файлов, как и имена файлов:
setwd("your path to folder where CSVs are")
filenames <- gsub("\\.csv$","", list.files(pattern="\\.csv$"))
for(i in filenames){
assign(i, read.csv(paste(i, ".csv", sep="")))
}
Этот ответ является более полезным дополнением к ответу Хэдли.
В то время как ОП специально хотел, чтобы каждый файл считывался в их рабочее пространство R как отдельный объект, многие других людей, наивно обращающихся к этому вопросу, могут подумать , что это именно то, что они хотят сделать, когда на самом деле им было бы лучше читать файлы в единый список фреймов данных.
Для справки, вот как вы могли бы сделать это.
#If the path is different than your working directory
# you'll need to set full.names = TRUE to get the full
# paths.
my_files <- list.files("path/to/files")
#Further arguments to read.csv can be passed in ...
all_csv <- lapply(my_files,read.csv,...)
#Set the name of each list element to its
# respective file name. Note full.names = FALSE to
# get only the file names, not the full path.
names(all_csv) <- gsub(".csv","",
list.files("path/to/files",full.names = FALSE),
fixed = TRUE)
Теперь любой из файлов может быть указан как my_files[["filename"]]
, что на самом деле не намного хуже , чем просто наличие отдельных filename
переменных в вашем рабочем пространстве, и часто это много удобнее.