df <- data.frame(var1=c('a', 'b', 'c'), var2=c('d', 'e', 'f'), freq=1:3)
什么是扩大上述data.frame的前两列最简单的方法,让 每一行出现的次数在'freq'栏中指定?复制data.frame中的每一行,并指定副本数为每行
换句话说,从这个去:
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
太好了!我总是忘记你可以使用方括号。我一直在想索引只是为了子集或重新排序。我有另一个远不那么优雅的解决方案,毫无疑问效率较低。无论如何,我可能会发帖,以便其他人可以比较。 – wkmor1 2010-05-24 10:30:21
对于大型'data.frame',更高效的是用'seq.int(1,nrow(df))'或'seq_len(nrow(df))'替换'row.names(df)'。 – Marek 2010-05-25 11:54:19
这对于一个大数据框非常奏效 - 150万行,5列,非常快。谢谢! – gabe 2012-11-21 06:16:34