基于R中的字段重复行

Pet*_*ris 3 r dataframe

我有一个数据帧df具有字段countvalue并希望将其与柱变换为数据帧value,其中的每一个值value被重复count多次.

我实际上并不知道如何在循环中执行此操作.涉及plyrreshape2(或两者)的解决方案是完全可以接受的.

这是我正在寻找的一个例子:

count value
2     10
1     20
Run Code Online (Sandbox Code Playgroud)

value
10
10
20
Run Code Online (Sandbox Code Playgroud)

后续问题

如果我有3个value1, value2, value3必须重复的字段count怎么办?

Tyl*_*ker 12

如果您的数据框名为dat,则可以使用:

dat[rep(seq_len(dim(dat)[1]), dat$count), 2]

## [1] 10 10 20
Run Code Online (Sandbox Code Playgroud)

如果您希望它像您发布的那样作为数据框:

data.frame(dat[rep(seq_len(dim(dat)[1]), dat$count), 2, drop = FALSE], row.names=NULL)

##   value
## 1    10
## 2    10
## 3    20
Run Code Online (Sandbox Code Playgroud)

  • 由于这似乎是一个有点常见的问题,[这里是它的功能](https://github.com/mrdwab/mrdwabmisc/blob/master/R/expandrows.R) (2认同)