在我的工作区中,我有dfo
这是216个对象的列表。每个对象都是一个数据框,前两个对象显示为:
> 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.990123 11780133
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
我还有一个216行和2列的数据框index
:
> 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
对于列表dfo
中的每个数据框,我想将向量dfo$K
除以该日期的相应index$Index
值。 dfo
数据框列表中的216个日期和index
数据框中的216个日期完全一致,但我在Date
和{{}}中都包含dfo
列{1}}用于冗余。
在这种情况下,我如何实施index
?我真的不明白如何将216个数据帧的列表与216行的数据帧连接起来。
答案 0 :(得分:1)
考虑迭代数据框列表的每个对象,并按日期与index
数据框合并。然后在循环中,运行您的计算K / Index
,保持Index
与否,然后返回结果。
newdfList <- lapply(dfList, function(df) {
newdf <- merge(ind, df, by='Date')
newdf['K'] <- newdf['K'] / newdf['Index']
newdf['Index'] <- NULL
return(newdf)
})