Перебор строк в кадре данных и чтение значений - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть r dataframe df1

    $ date            <date> 2005-01-01, 2005-01-01
    $ realtime_period <date> 2005-04-28, 2006-02-28
    $ GDP             <dbl> 12182.7, 12198.8

И еще один r dataframe d2

    $ ID                     <dbl> 65, 99, 411, 420, 421, 426, 428, 429, 431, 433, 446, 448, 456, 463, 472, 483, 484, 497, 498, 502, 504, 5...
    $ forecast               <dbl> 12113.86, 12224.00, 12126.00, 12138.00, 12110.60, 12166.76, 12149.40, 12151.10, 12155.73, 12142.60, 1213...

И я хочу прочитать каждую строку в df1 и добавить соответствующий столбец в df2 и включить соответствующее значение в столбце «ВВП» в df2

df2[paste(as.character(df1$realtime_period), "-", df2$GDP)] <- df1$GDP
$ ID                     <dbl> 65, 99, 411, 420, 421, 426, 428, 429, 431, 433, 446, 448, 456, 463, 472, 483, 484, 497, 498, 502, 504, 5...
$ forecast               <dbl> 12113.86, 12224.00, 12126.00, 12138.00, 12110.60, 12166.76, 12149.40, 12151.10, 12155.73, 12142.60, 1213...
$ `2005-04-28 - 12182.7` <dbl> 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12198...
$ `2006-02-28 - 12198.8` <dbl> 12198.8, 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12198.8, 12182...

Но значения перепутаны. Например, все значения в столбце 2005-04-28 - 12182.7 должны читаться как 12182.7, но каждое другое значение смешивается с соответствующим значением в следующем столбце

Ожидаемый результат будет следующим:

$ ID                     <dbl> 65, 99, 411, 420, 421, 426, 428, 429, 431, 433, 446, 448, 456, 463, 472, 483, 484, 497, 498, 502, 504, 5...
$ forecast               <dbl> 12113.86, 12224.00, 12126.00, 12138.00, 12110.60, 12166.76, 12149.40, 12151.10, 12155.73, 12142.60, 1213...
$ `2005-04-28 - 12182.7` <dbl> 12182.7, 12198.8, 12182.7, 12198.8, 12182.7, 12182.7, 12182.7, 12182.7, 12182.7, 12182.7, 12182.7, 12182...
$ `2006-02-28 - 12198.8` <dbl> 12198.8, 12198.8, 12198.8, 12198.8, 12198.8, 12198.8, 12198.8, 12198.8, 12198.8, 12198.8, 12198.8, 12198...

Как мне исправить эту проблему?

1 Ответ

1 голос
/ 13 апреля 2020

Вы можете попробовать:

df2[paste(df1$realtime_period, df1$GDP, sep = "-")] <- as.list(df1$GDP)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...