2017-02-04 7 views
1

Я могу сгенерировать список timeDate объектов для Нью-йоркской биржи. Однако большинство аналитических функций ожидают один объект timeDate. Основная информация данных - POSIXct, поэтому я не могу просто добавить их как вектор или список.Как объединить список timeDate в одно время?

Как это сделать?

library(timeDate) 
x <- lapply(c(1885: 1886), holidayNYSE) 
x 

[[1]] 
NewYork 
[1] [1885-01-01] [1885-02-23] [1885-04-03] [1885-11-03] [1885-11-26] [1885-12-25] 

[[2]] 
NewYork 
[1] [1886-01-01] [1886-02-22] [1886-04-23] [1886-05-31] [1886-07-05] [1886-11-02] [1886-11-25] 

class(x[[1]]) 
[1] "timeDate" 
attr(,"package") 
[1] "timeDate" 

class(x[[1]]@Data) 
[1] "POSIXct" "POSIXt" 

# ??? How to my two datetime objects ??? 

ответ

1

Мы можем использовать do.call с c

x1 <- do.call(c, x) 
x1 
#NewYork 
#[1] [1885-01-01] [1885-02-23] [1885-04-03] [1885-11-03] [1885-11-26] [1885-12-25] [1886-01-01] [1886-02-22] [1886-04-23] [1886-05-31] [1886-07-05] [1886-11-02] 
#[13] [1886-11-25] 

str(x1) 
#Formal class 'timeDate' [package "timeDate"] with 3 slots 
# [email protected] Data  : POSIXct[1:13], format: "1885-01-01 05:00:00" "1885-02-23 05:00:00" "1885-04-03 05:00:00" "1885-11-03 05:00:00" ... 
# [email protected] format : chr "%Y-%m-%d" 
# [email protected] FinCenter: chr "NewYork" 

и структура параметров порядка list является

str(x) 
#List of 2 
#$ :Formal class 'timeDate' [package "timeDate"] with 3 slots 
# .. [email protected] Data  : POSIXct[1:6], format: "1885-01-01 05:00:00" "1885-02-23 05:00:00" "1885-04-03 05:00:00" "1885-11-03 05:00:00" ... 
# .. [email protected] format : chr "%Y-%m-%d" 
# .. [email protected] FinCenter: chr "NewYork" 
# $ :Formal class 'timeDate' [package "timeDate"] with 3 slots 
# .. [email protected] Data  : POSIXct[1:7], format: "1886-01-01 05:00:00" "1886-02-22 05:00:00" "1886-04-23 05:00:00" "1886-05-31 05:00:00" ... 
# .. [email protected] format : chr "%Y-%m-%d" 
# .. [email protected] FinCenter: chr "NewYork" 
+0

Я на самом деле есть более 100 объектов в моем списке. Работает ли 'do.call' с этим количеством объектов? – SmallChess

+0

@StudentT Он должен работать, если все они имеют одинаковую структуру. Ручным способом является 'c (x [[1]], x [[2]]), которого мы избегаем здесь – akrun

 Смежные вопросы

  • Нет связанных вопросов^_^