Поиск ежедневных возвратов в R для нескольких листов в одной книге и их слияние?

Привет, у меня в настоящее время есть 70 листов под одной и той же книгой Excel, и я пытаюсь найти ежедневные данные на основе данных, а затем объединить все 70 листов в один фрейм данных. Все 70 листов содержат дату и цену открытия. Вот мой код до сих пор для программного обеспечения R

require(XLConnect) wb <- loadWorkbook(system.file("crypto.xlsx", package = "XLConnect")) crypto = readWorksheet(wb, sheet = getSheets(wb),startRow=1,endRow = 20, endCol=2) 

Я хочу найти возврат каждого листа, а затем объединить все 70 в один фрейм данных. Однако во всех этих листах период времени различен, и я не могу найти способ их слияния. В конечной части данных я хочу переменные Date, Price1, Dailyreturn1, Price2, DailyReturn2 ......... Price70, DailyReturn70 Любая помощь будет оценена с помощью возвратов и слияния.

Вот как мои данные выглядят с гораздо большим количеством строк, и формат данных одинаковый для всех 70 листов.

 Date Open High Low Close Market Cap 28-Apr-13 135.3 135.98 132.1 134.21 1,500,520,000 29-Apr-13 134.44 147.49 134 144.54 1,491,160,000 30-Apr-13 144 146.93 134.05 139 1,597,780,000 1-May-13 139 139.89 107.72 116.99 1,542,820,000 

и я хочу, чтобы конечный результат выглядел примерно так: все 70 листов были объединены в один. DR для ежедневного возвращения

 Date Open1 DR1 Open2 DR2 Open3 DR3............Open70 DR70 

Рассмотрим слияние цепей с Reduce сохраняя все x строк (т. Е. Левое соединение). Но сначала обновите список, чтобы переименовать столбцы, которые можно выполнить с помощью setNames .

 # ASSUME ALL DFs ARE ONLY Date and Open crypto2 <- lapply(seq_along(crypto), function(i) setNames(crypto[[i]], c("Date", paste0("DR", i)))) finaldf <- Reduce(function(x, y) merge(x, y, by="Date", all.x=TRUE), crypto2) 

ПРИМЕЧАНИЕ. Будьте осторожны с этим методом « Reduce если ваши данные имеют повторяющиеся даты с разными значениями Open, поскольку merge будет быстро увеличиваться, поскольку каждая комбинация будет возвращена.

Пример со случайными данными (совокупность, используемая для возврата только уникальных дат за предыдущее предупреждение)

 set.seed(123) crypto <- lapply(seq(10), function(i) aggregate(Open~Date, data.frame( Date = Sys.Date()- sapply(seq(30), function(i) sample(15,1,replace=TRUE)), Open = abs(rnorm(30)*100) ), FUN=max)) crypto2 <- lapply(seq_along(crypto), function(i) setNames(crypto[[i]], c("Date", paste0("DR", i)))) finaldf <- Reduce(function(x, y) merge(x, y, by="Date", all.x=TRUE), crypto2) 

Вывод

 finaldf # Date DR1 DR2 DR3 DR4 DR5 DR6 DR7 DR8 DR9 DR10 # 1 2017-11-12 70.92008 56.29895 37.56029 136.403745 100.56363 NA 138.80490 28.73408 64.75134 195.07210 # 2 2017-11-13 102.55714 212.84519 190.23618 199.274849 127.22668 NA 151.60676 NA 188.63252 90.35164 # 3 2017-11-15 44.82098 105.27115 135.98407 101.755864 123.56935 123.66758 107.49451 NA 91.35660 45.73573 # 4 2017-11-16 22.04866 36.89645 63.07541 151.921771 43.88187 103.96804 168.75895 144.14618 90.44355 NA # 5 2017-11-17 122.07177 37.45809 229.30790 175.323736 88.33028 35.88557 84.90611 72.82191 23.11149 70.10036 # 6 2017-11-18 109.68390 NA 159.85088 62.418747 163.35684 116.52534 154.66092 90.42150 33.33700 79.76007 # 7 2017-11-19 205.00847 NA 78.86220 246.589819 NA 60.85572 NA 245.80605 85.52022 184.32663 # 8 2017-11-20 114.88076 37.24388 154.75811 72.160444 71.27033 60.53707 107.40123 11.88494 131.82207 76.46060 # 9 2017-11-21 33.32074 126.01552 50.21987 257.145815 222.49877 50.63335 208.67174 106.10953 115.29362 148.37795 # 10 2017-11-22 230.91689 21.53805 11.36399 97.400958 239.74525 96.72673 NA 58.99827 216.14158 122.09637 # 11 2017-11-24 33.17820 104.91770 66.47694 NA 45.03386 142.05655 260.16997 154.04424 NA 103.81310 # 12 2017-11-25 37.96395 97.69734 52.11173 57.185006 163.63793 18.43089 141.52819 154.77765 65.80102 109.95509 # 13 2017-11-26 37.06600 76.90422 175.65274 3.303616 177.95029 194.58512 87.52555 118.71868 39.43948 111.64164 
  • Как открыть файл excel в R, где формат файла и расширение файла отличаются?
  • Импорт нескольких файлов Excel с именами файлов в R
  • Как преобразовать вектор столбца в диагональ матрицы?
  • Нужна помощь в подсчете единиц, проданных из данных Excel
  • Обновление набора данных с использованием студии R
  • Построение графика в R и экспорт его в Excel в цикле
  • Проблемы с установкой количеств в R (создает числа случайных чисел)
  • Что такое эквивалент R следующей операции Excel
  • Преобразование 10-минутных интервальных данных в среднечасовую
  • Экспорт фондовых цен нескольких компаний в разные столбцы в Excel с использованием R
  • Извлечение уникальных комбинаций между двумя наборами координат
  • Interesting Posts
    Давайте будем гением компьютера.