基于不同数据集的列值迭代过滤数据集R

时间:2019-04-10 14:58:10

标签: loops filtering subset

我在基于另一个数据集迭代筛选数据集时遇到问题。我有一个原始数据集(df1),其中包含股票及其按日期的平均回报。它是一个具有508行和183列的大型数据集,第一列包含股票名称。我有另一个数据集(df2),该数据集具有每个日期列的前30个股票名称。日期列是相同的。我希望基于df2的每个列值(每个日期30只股票的列表)在df1上迭代运行过滤器,并获取df1中下一列的收益。

我曾经尝试过过滤,合并和子集设置,但是我无法有效地在df2的所有列上运行。

df1

        12/30/04    01/27/05    02/24/05    03/24/05

  AAPL    -4.41%    12.72%       23.09%     -3.66%

  AMZN    12.48%    -5.60%      -16.09%     -3.69%

  MSFT    -1.80%    -2.94%       -2.46%     -3.65%
  MNST     3.04%     9.63%       12.66%     51.82%
……..               …..            ……..            ………                  …...
 up to 508 rows

df2

               12/30/04   01/27/05          02/24/05       03/24/05
               MNST            MNST            AAPL            MNST
               ADSK            AAPL             VLO            AAPL
               AAPL            HOLX             MNST           VLO
               ISRG            CME              ISRG           ISRG
                CME            HUM              HOLX            AES
               WYNN            ISRG             NVDA           CTSH
 up to 30 rows

期望的输出 dfresult

     12/30/2004    1/27/2005      2/24/2005      3/24/2005  
Stock   Return  Stock   Return  Stock   Return  Stock   Return
MNST    9.63%   MNST    12.66%  AAPL    -3.66%  MNST    6.38%
ADSK    -22.56% AAPL    23.09%  VLO    7.55%    AAPL    -12.62%
AAPL    12.72%  HOLX    8.85%   MNST    51.82%  VLO     4.41%
ISRG    -2.31%  CME     6.55%   ISRG    0.02%   ISRG    14.70%
 CME    -7.91%  HUM     0.42%   HOLX    -13.41% AES   4.11%
WYNN    -8.87%  ISRG    21.05%  NVDA    -9.27%  CTSH    -9.32%

其中2004年12月30日返回的AAPL = df1中下一列的值

0 个答案:

没有答案