Источник проблемы состоит в том, что вы объединяете различные классы объектов, когда объединяете listOfHolidays с объектами класса timeDate. Вектор должен состоять из одного класса объектов, поэтому их объединение превращается в список, поскольку ни один из них не может быть приведен к другому. Если вы проверите methods(c)
, то увидите, что у класса timeDate есть собственный метод, который предназначен для создания векторов этого класса, созданных пакетом timeDate.
Чтобы избежать этого, полностью покончив с l oop и объединив apply с do.call (как в решении @thomasIsCoding):
do.call(c,
sapply(c(getRmetricsOptions("currentYear"),
'nextYear'=unname(getRmetricsOptions("currentYear") +1)),
FUN=function(x) {c(goodfriday=GoodFriday(x),easter=EasterMonday(x))}))
результат:
GMT
currentYear.goodfriday currentYear.easter nextYear.goodfriday nextYear.easter
[2020-04-10] [2020-04-13] [2021-04-02] [2021-04-05]