【发布时间】:2020-04-13 02:31:31
【问题描述】:
我有 r 数据框 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 数据帧 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的“GDP”列中
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...
我该如何解决这个问题?
【问题讨论】:
-
您能否使用
dput共享数据并显示相同的预期输出?阅读如何提供reproducible example。 -
@RonakShah 我添加了预期的结果。我只想读取 df1 上的相应值并在 df2 上的相应列中的所有行中列出相同的值
-
你被矢量回收利用了。您需要它,因为您需要为每一行重复每个值,但现在它正在重复整个向量,而不是单独重复每个值。下面的 Ronak 解决方案将向量分成两部分,因此回收是分开进行的。如果这没有意义,请简化您的方法并一次分配一列。
标签: r