首页 > 解决方案 > 在R中的组内按行号对数据帧进行分类

问题描述

我的数据由来自不同文本的单词列表(组变量)组成,我试图将每个组中的数据框按一定数量的行(每 2000 行)进行分类。

我的数据如下所示:

index   text   word
1       H6     mællte
2       H6     fleiru
...
66265   H6     han
1       DG8    Son
2       DG8    hins
3       DG8    var
...
2001    DG8    faer
2002    DG8    hælga

我希望它看起来像这样:

index   text   word     bin
1       H6     mællte   1
2       H6     fleiru   1
...
66265   H6     han      33
1       DG8    Son      1
2       DG8    hins     1
3       DG8    var      1
...
2001    DG8    faer     2
2002    DG8    hælga    2

标签: rsplit

解决方案


我们可以rep使用dplyr

library(dplyr)

df %>%
  group_by(text) %>%
  mutate(bin = rep(1:ceiling(n()/2000), each = 2000, length.out = n()))

length.out = n()确保如果n()不能被 整除2000,则最后一个“bin”值将仅重复直到每组的第 N 行。


推荐阅读