R: Загрузка серии XTS из нескольких файлов в один блок - PullRequest
2 голосов
/ 05 января 2012

У меня есть следующий код R для загрузки временных рядов xts из нескольких файлов и объединения их в одну матрицу xts:

load.files = function(dates, filenames) {
  for( i in 1:length(dates) ) {
  # load and merge each xts block
  ts.set = load.single.file(dates[i], filenames[i])
  if( i == 1 )
    ts.all = ts.set
  else
    ts.all = rbind(ts.all, ts.set)
}

return(ts.all)

Есть ли способ

  1. Избегатьоператор if / else требуется для инициализации самого первого ts.set?
  2. Избегать цикла for вообще?

1 Ответ

3 голосов
/ 05 января 2012

Я часто использую такую ​​конструкцию, которая позволяет избежать явного построения цикла.

Стратегия заключается в том, чтобы сначала прочитать файлы в список data.frames, а затем rbind собрать вместе элементы этогосписок в один data.frame.Вы можете предположительно адаптировать ту же логику к вашей ситуации.

filenames <- c("a.csv", "b.csv", "c.csv")
l <- lapply(filenames, read.csv)
do.call("rbind", l)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...