Итеративная фильтрация набора данных на основе значений столбцов другого набора данных R - PullRequest
0 голосов
/ 10 апреля 2019

У меня возникла проблема с итеративной фильтрацией моего набора данных на основе другого набора данных.У меня есть оригинальный набор данных (df1), который содержит акции и их среднюю доходность по дате.Это большой набор данных с 508 строками и 183 столбцами, причем первый столбец содержит названия акций.У меня есть другой набор данных (df2), в котором указаны 30 наименований акций на каждую дату, в зависимости от столбца.Столбцы даты одинаковы.Я хотел итеративно запускать фильтры на df1 на основе значения каждого столбца df2 (список из 30 акций на каждую дату) и получать возврат для следующего столбца в 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%

, где возврат для 30.12.2004 для AAPL, например, = значение для следующего столбца в df1

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