Повторите каждую строку data.frame количество раз, указанное в столбце

df <- data.frame(var1 = c('a', 'b', 'c'), var2 = c('d', 'e', 'f'),
                 freq = 1:3)

Что самый простой путь состоит в том, чтобы развернуть каждую строку первые два столбца 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
127
задан Henrik 5 November 2019 в 15:20
поделиться

1 ответ

Вот одно решение:

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
153
ответ дан 24 November 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: