Мне нужна помощь в создании набора данных в R, где каждое наблюдение содержит широту, долготу и дату. Прямо сейчас у меня есть список из примерно 2000 файлов, расположенных в сетке по широте / долготе, и каждый файл содержит наблюдения за одну дату. В конечном итоге мне нужно объединить все эти файлы в один файл, в котором каждое наблюдение содержит переменную даты, извлекаемую из имени его файла.
Так, например, файл называется «MERRA2_400». .tavg1_2d_flx_Nx.20120217.SUB.n c». Я хочу, чтобы все наблюдения из этого файла содержали переменную даты 17.02.2012.
Это расширение "n c" описывает файл netCDF, который можно прочитать в R следующим образом:
library(RNetCDF)
setwd("~/Desktop/Thesis Data")
p1a<-"MERRA2_300.tavg1_2d_flx_Nx.20050101.SUB.nc"
pid<-open.nc(p1a)
dat<-read.nc(pid)
Я знаю, что команда ldply
может быть полезна для извлечения и назначения новой переменной из имени файла. Но мне нужно создать al oop, который объединяет все файлы в папке «Thesis Data» выше (задается как мой wd) и дает им переменные даты в процессе.
Я пытался сделать это, используя две отдельные петли. Первый l oop загружает файлы один за другим, создает переменную даты из имени файла, а затем сохраняет их в новую папку. Второй l oop объединяет все файлы в этой новой папке. Мне не очень повезло с этой стратегией.
view[dat]
Как вы можете надеяться, вы видите на этом рисунке, который описывает загруженный выше файл данных, каждый файл содержит переменная времени, но эта переменная времени имеет одно наблюдение, которое составляет 690, в каждом файле. Поэтому я мог бы заменить эту переменную датой в имени файла или создать новую переменную - либо она работает.
Любая помощь будет принята с благодарностью!