将数字序列分配给数据框行

Assign a sequence of numbers to data frame rows

我正在尝试根据行位置将数字序列分配给数据框中的行。我有 330 行,我希望每组九行在新的 ID 列中命名为 1 到 9。例如,我希望第 1-9 行标记为 1-9,第 10-18 行标记为 1-9,第 19-27 行标记为 1-9 等等。

我试过使用这个代码:

test <- temp.df %>% mutate(id = seq(from = 1, to = 330, along.width= 9))
test

但它最终只是创建了一个新列来标记行 1-330,如下所示。

Time        Temperature    ID
09:36:52    25.4           1
09:36:59    25.4           2
09:37:07    25.4           3
09:37:14    25.4           4
09:37:21    25.4           5
09:37:29    25.4           6
09:37:36    25.4           7
09:37:43    25.5           8
09:37:51    25.5           9
09:37:58    25.5          10

实现我的目标的最佳方法是什么?

我想如果您能提供 data.frame temp.df 的片段,那将更容易帮助您。也许以下行可以帮助您将它添加到您的 data.frame,但是,它不是一个非常灵活的解决方案,但它基于您提供的信息。

n_repeated <- 9    #block of ID
N_rows   <- 330    #number of observations

df <- data.frame(id = rep(seq(1,n_repeated ),N_rows ))

head(df,n = 15)

#> head(df,n = 15)
#   id
# 1   1
# 2   2
# 3   3
# 4   4
# 5   5
# 6   6
# 7   7
# 8   8
# 9   9
# 10  1
# 11  2
# 12  3
# 13  4
# 14  5
# 15  6

[已编辑]

使用 dplyr 中的 mutate 这一行应该做到这一点:

test <- temp.df %>% mutate(id = rep(seq(1,9), nrow(temp.df)))