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
Для больших 'data.frame' более эффективным является замена' row.names (df) 'на' seq.int (1, nrow (df)) 'или' seq_len (nrow (df)) '. – Marek
Это сработало фантастически для большого кадра данных - 1,5 миллиона рядов, 5 колос, очень быстро. Благодаря! – gabe