У меня 52 файла временных рядов различной длины для даты. Все они имеют одинаковую дату окончания - 31-01-2017, но все 52 кадра данных имеют разные даты начала.
«данные»: nRows
Date FLOW Modelled
01-01-1992 1.856 NA
02-01-1992 1.523 NA
03-01-1992 2.623 NA
04-01-1992 3.679 NA
...
31-12-2017
У меня также есть файл с имитированными значениями FLOW для каждого из наборов данных в столбцах.
«Имитация»: 20819 строк, 53 столбца (включая дату).
Date 1 2 3 ..52
01-01-1961 1.856 2.889 2.365
02-01-1961 1.523 3.536 4.624
03-01-1961 2.536 2.452 6.352
04-01-1961 3.486 4.267 3.685
...
31-12-2017
Мой вопрос заключается в том, что я хочу выбрать каждый столбец из моделируемых данных (например, столбец 1 соответствует файлу «данных» 1) и заполнить моделируемый столбец «данных» имитированными значениями. В идеале это будет цикл по 52 файлам, основанным на списке их имен
Проблема, с которой я сталкиваюсь, заключается в том, что при использовании left_join появляется ошибка
e.g. replacement has 20819 rows, data has 9657
когда 'data' короче, чем 'Simulated', и
e.g. replacement has 20819 rows, data has 22821
, когда «данные» длиннее, чем «Имитация».
Я попытался использовать left_join из пакета dplyr
, но безуспешно, поскольку даты не совпадают между кадрами данных и данными.
library(dplyr)
df <-left_join(data, Simulated, by = c("Date"),all.x=TRUE)
Я отформатировал даты 'data' и 'Simulated', используя аналогично Simulated$Date <- as.Date(with(Simulated, paste(Year, Month, Day, sep="-")), "%Y-%m-%d")
. Но я все еще получаю ошибку ниже при использовании left_join:
cannot join a Date object with an object that is not a Date object