Создание функции для перебора элементов tibble в большом списке в R - PullRequest
1 голос
/ 29 января 2020

Я пытаюсь создать функцию для автоматизации базового c форматирования, которое мне нужно сделать перед тем, как объединить несколько наборов данных в xts. Я могу сделать массовое чтение файлов и создать большой список тибблов. Но мне трудно создать функцию для перебора этого списка. Когда я читаю отдельные файлы в df, я запускаю следующее:

df<-df[!(duplicated(df$DateTime)),] dfx<-xts(df[,-1], order.by = as.POSIXct(df$DateTime, format="%d-%b-%y %H:%M:%S"))

Затем я выполняю merge.xts всех объектов 'dfx'. Одна проблема, с которой я сталкиваюсь с данными, заключается в том, что DateTime не всегда совпадает между файлами, и вышеуказанный метод дает мне большие значения xts с NA, что я предпочитаю другому типу слияния / rbind. Я хотел бы создать функцию, чтобы делать это снова и снова, особенно потому, что чтение каждого файла в отдельные фреймы данных, а затем объединение - это изнурительное занятие, когда мне нужно объединить 10+. Все мои попытки не увенчались успехом, и теперь я просто застрял. : / Любая помощь будет оценена!

1 Ответ

1 голос
/ 29 января 2020

Если это list, мы можем использовать lapply до l oop над list и использовать анонимный вызов функции для применения функции

lst2 <- lapply(lst1, function(df) {
     df<-df[!(duplicated(df$DateTime)),]
     xts(df[,-1], order.by = as.POSIXct(df$DateTime, format="%d-%b-%y %H:%M:%S")) 
  })

, а затем использовать Reduce сделать merge

Reduce(merge, lst2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...