df <- data.frame(var1 = c('a', 'b', 'c'), var2 = c('d', 'e', 'f'), freq = 1:3)
将每一行扩展为上面data.frame的前两列的最简单方法是什么,以便每一行重复列“freq”中指定的次数?
换句话说,从这里开始:
df var1 var2 freq 1 a d 1 2 b e 2 3 c f 3
对此:
df.expanded var1 var2 1 a d 2 b e 3 b e 4 c f 5 c f 6 c f
这是一个解决方案:
df.expanded <- df[rep(row.names(df), df$freq), 1:2]
结果:
var1 var2 1 a d 2 b e 2.1 b e 3 c f 3.1 c f 3.2 c f