按R中的数字对数据框中的行进行分组和标记

时间:2015-04-23 13:03:41

标签: r dataset grouping rows

我需要对R中的数据集中的每个x观察(行)进行分组和标记 我需要知道数据集中的最后一组行是否少于x个观察值

例如: 如果我使用包含10个观察值和2个变量的数据集,并且我想按每3行进行分组。 我想添加一个新列,以便数据集如下所示:

    speed     dist       newcol
        4        2            1
        4       10            1
        7        4            1
        7       22            2
        8       16            2
        9       10            2
       10       18            3
       10       26            3
       10       34            3
       11       17            4

2 个答案:

答案 0 :(得分:2)

df$group <- rep(1:(nrow(df)/3), each = 3)

如果行数是3的精确倍数,则此方法有效。每三行将以序列号标记。

快速肮脏的方法来解决不知道最后一组是多么不完整的问题,只需检查当nrow是模数除以组大小时剩余的:nrow(df) %% 3 #change the divisor to your group size

答案 1 :(得分:1)

假设您的数据为df,您可以

df$newcol = rep(1:ceiling(nrow(df)/3), each = 3)[1:nrow(df)]