У меня есть вопрос, связанный с R, который связан с необходимостью чтения многих файлов и обработки этих файлов. Каждый файл предназначен для измерений озона, сделанных в разное время на разных станциях. Данные в формате таблицы, и я могу прочитать данные, используя:
files <- list.files()
data <- lapply(files, read.table, skip=19)
Это дает мне кадр данных для всех файлов, которые я хотел бы сейчас обработать. Например, файлы называются:
> head(files)
[1] "fiji_19980105.dat" "fiji_19980112.dat" "fiji_19980119.dat"
[4] "fiji_19980130.dat" "fiji_19980206.dat" "fiji_19980213.dat"
Где «фиджи» — название станции, а дата — в формате YMD. Я хотел бы усреднить кадр данных, чтобы получить среднемесячные значения для этой станции (мне нужно будет работать только с одной станцией за раз, поэтому на самом деле я просто хочу усреднить кадр данных, называемый данными, для получения 12 наборов средних данных).
Я думаю, что могу сделать это, используя некоторую функцию ?apply, но я действительно не понимаю, как это сделать. Любые предложения по решению действительно ценятся!
В качестве примера результата добавления дат во фрейм данных мы имеем:
> head(dat)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 Date
1 9000 1007.7 0.006 29.6 74 0.59 0.006 9000 9000 9000 1998-01-05
2 9000 1005.2 0.028 29.3 75 0.62 0.006 9000 9000 9000 1998-01-05
3 9000 1001.6 0.060 28.5 78 0.63 0.006 9000 9000 9000 1998-01-05
> str(dat)
'data.frame': 153994 obs. of 11 variables:
$ V1 : int 9000 9000 9000 9000 9000 9000 9000 9000 9000 9000 ...
$ V2 : num 1008 1005 1002 997 993 ...
$ V3 : num 0.006 0.028 0.06 0.104 0.14 0.169 0.198 0.238 0.271 0.301 ...
$ V4 : num 29.6 29.3 28.5 27.9 27.6 27.2 27 26.6 26.2 26 ...
$ V5 : int 74 75 78 79 80 81 82 84 85 85 ...
$ V6 : num 0.59 0.62 0.63 0.68 0.69 0.7 0.72 0.74 0.75 0.76 ...
$ V7 : num 0.006 0.006 0.006 0.007 0.007 0.007 0.007 0.008 0.008 0.008 ...
$ V8 : num 9000 9000 9000 9000 9000 9000 9000 9000 9000 9000 ...
$ V9 : num 9000 9000 9000 9000 9000 9000 9000 9000 9000 9000 ...
$ V10 : num 9000 9000 9000 9000 9000 9000 9000 9000 9000 9000 ...
$ Date: Date, format: "1998-01-05" "1998-01-05" ...