R 如何将观察值复制为另一个变量值的函数

R 如何将观察值复制为另一个变量值的函数,r,dataframe,dataset,R,Dataframe,Dataset,我想根据变量iptw的值复制观察结果,以创建伪总体进行进一步分析 例如,如果iptw=4.5,则应创建权重=5,并将观测值/行乘以5。同样,如果iptw=2.3,则权重=2,该行乘以2,这相当于将相应的观测值添加到数据帧两次 这是我的数据集: 有一个类似的问题,但解决方案没有回答我的问题。假设您要复制第i行roundiptw[i]次: dtNEW[rep(1:.N, round(iptw)), ] 给予: id x1 x2 iptw 1: 1 10 21 2.3 2: 1 10 2

我想根据变量iptw的值复制观察结果,以创建伪总体进行进一步分析

例如,如果iptw=4.5,则应创建权重=5,并将观测值/行乘以5。同样,如果iptw=2.3,则权重=2,该行乘以2,这相当于将相应的观测值添加到数据帧两次

这是我的数据集:


有一个类似的问题,但解决方案没有回答我的问题。

假设您要复制第i行roundiptw[i]次:

dtNEW[rep(1:.N, round(iptw)), ]
给予:

   id x1 x2 iptw
1:  1 10 21  2.3
2:  1 10 21  2.3
3:  2 11 22  0.6
4:  3 12 23  4.5
5:  3 12 23  4.5
6:  3 12 23  4.5
7:  3 12 23  4.5

假设您希望复制第i行roundiptw[i]次:

dtNEW[rep(1:.N, round(iptw)), ]
给予:

   id x1 x2 iptw
1:  1 10 21  2.3
2:  1 10 21  2.3
3:  2 11 22  0.6
4:  3 12 23  4.5
5:  3 12 23  4.5
6:  3 12 23  4.5
7:  3 12 23  4.5
另一个选项是从tidyr中取消计数

另一个选项是从tidyr中取消计数


非常感谢@G.格罗森迪克。这个解决方案有效。非常感谢@G.格罗森迪克。这个解决方案有效。非常感谢@akrun。这个解决方案很好。非常感谢@akrun。这个解决方案很好。