In meinem Arbeitsbereich habe ich dfo
, die eine Liste von 216 Objekten ist. Jedes Objekt ist ein Datenrahmen, wobei die ersten beiden Objekte sind dargestellt:über die Liste der Datenrahmen (R)
> head(dfo)
$`1997-01-23`
Date C/P K Vol Delta ID
56 1997-01-23 0 400 NA NA 11690674
10 1997-01-23 0 550 NA NA 10376194
34 1997-01-23 0 600 NA NA 11036690
58 1997-01-23 0 650 NA NA 11544898
27 1997-01-23 0 660 NA NA 10759732
52 1997-01-23 0 670 NA NA 11439157
50 1997-01-23 0 680 0.176301 0.995920 11364929
60 1997-01-23 0 690 0.185490 0.99
39 1997-01-23 0 700 0.203161 0.972175 11183860
65 1997-01-23 0 710 0.200024 0.955090 11730364
38 1997-01-23 0 720 0.202629 0.923953 10982863
. . . . . . .
. . . . . . .
. . . . . . .
45 1997-01-23 1 785 0.160904 -0.552771 10986679
2 1997-01-23 1 790 0.159603 -0.609276 10333499
23 1997-01-23 1 795 0.156346 -0.666208 10456682
47 1997-01-23 1 800 0.154266 -0.719749 11072475
44 1997-01-23 1 805 0.150034 -0.773075 11165557
63 1997-01-23 1 810 0.151855 -0.812170 11764824
53 1997-01-23 1 815 0.150437 -0.851131 11378977
62 1997-01-23 1 820 NA NA 11532248
18 1997-01-23 1 825 NA NA 10428721
41 1997-01-23 1 830 NA NA 10985583
$`1997-02-20`
Date C/P K Vol Delta ID
125 1997-02-20 0 400 NA NA 11116217
139 1997-02-20 0 450 NA NA 11285261
157 1997-02-20 0 475 NA NA 11697618
100 1997-02-20 0 500 NA NA 10744183
167 1997-02-20 0 525 NA NA 11659969
162 1997-02-20 0 550 NA NA 11774819
79 1997-02-20 0 575 NA NA 10237388
150 1997-02-20 0 600 NA NA 11441546
118 1997-02-20 0 610 NA NA 10875377
72 1997-02-20 0 620 NA NA 10249544
121 1997-02-20 0 625 NA NA 10924970
85 1997-02-20 0 630 NA NA 10387622
102 1997-02-20 0 635 NA NA 10599759
107 1997-02-20 0 640 NA NA 10770025
124 1997-02-20 0 645 NA NA 11068359
129 1997-02-20 0 650 NA NA 10883922
105 1997-02-20 0 660 NA NA 10485716
123 1997-02-20 0 670 NA NA 11020541
175 1997-02-20 0 675 0.244968 0.994066 10350962
98 1997-02-20 0 680 0.261206 0.989390 10574981
. . . . . . .
. . . . . . .
. . . . . . .
99 1997-02-20 1 830 0.182276 -0.719366 10719331
163 1997-02-20 1 840 0.178969 -0.797619 11657641
132 1997-02-20 1 850 0.178679 -0.858147 11205448
169 1997-02-20 1 875 NA NA 11759335
67 1997-02-20 1 900 NA NA 10001169
90 1997-02-20 1 925 NA NA 10196550
I auch einen Datenrahmen aufweisen index
von 216 Zeilen und 2 Spalten:
> head(index)
Date Index
1 01/23/1997 776.64
2 02/20/1997 800.35
3 03/20/1997 778.04
4 04/17/1997 760.49
5 05/22/1997 833.86
6 06/19/1997 888.99
für jeden Datenrahmen in der Liste dfo
I möchte den Vektor dfo$K
durch den entsprechenden index$Index
Wert für dieses Datum teilen. Die 216 Daten in der dfo
Liste von Datenrahmen und die 216 Daten in dem index
Datenrahmen entsprechen perfekt, aber ich habe die Date
Spalten sowohl in dfo
als auch index
für die Redundanz eingefügt.
Wie würde ich lapply
in diesem Fall implementieren? Ich verstehe nicht wirklich, wie man eine Liste von 216 Datenrahmen mit einem Datenrahmen von 216 Reihen verbindet.
Sie können sich "Mapply" ansehen. – coffeinjunky
Vorausgesetzt, dass Ihre Liste der data.frames alle dieselben Spalten enthält und bereits eine Spalte "Datum" aufweist, die die Daten unterscheidet, können Sie sie alle zusammen in einem großen data.frame mit 'do.call (rbind, dfo) 'wenn das für Sie einfacher zu arbeiten ist, können Sie' merge' oder 'dplyr' oder whatnot verwenden. Wenn Sie die Dinge so wenig wie möglich ändern möchten, ist 'mapply' oder' Map' der richtige Weg. – alistaire
Wenn Ihre Tabellen in einer Liste die gleiche Struktur haben, wird es weniger effizient sein, sie mit 'lapply' zu verarbeiten, als mit der Verarbeitung einzelner Tabellen * nach Gruppen *. Zum schnellen Binden Ihrer Liste in einen einzelnen Datensatz suchen Sie nach der 'rbindlist'-Funktion. – jangorecki