将每一行乘以该行中包含的变量,以扩展数据帧的维度

时间:2015-07-10 16:01:33

标签: r

我希望将数据帧中的每一行乘以X行,如行中的值所定义的那样。

数据:

df <- expand.grid(var1 = 1:3, var2 = 1:3)
df$repeatme = c(2, 3, 11, 6, 14, 1, 7, 8, 30)

乘数因子由repeatme变量确定。

因此,我想成倍增加:

  • 第1行...... 2次(因为repeatme == 2);
  • 第2行...... 3次(因为repeatme == 3);
  • 第3行... 11次(因为repeatme == 11);

期望的输出:

  var1 var2 repeatme
1    1    1        2
2    1    1        2
3    2    1        3
4    2    1        3
5    2    1        3
6    3    1       11
7    3    1       11
8    3    1       11

         ...

修改

要清楚,我不会问如何在行内多次变量!我想通过将行本身相乘来改变数据帧的结构/维度!

1 个答案:

答案 0 :(得分:2)

df[rep(1:nrow(df), times = df$repeatme), ]