R 根据行数在新列中分配编号

R 根据行数在新列中分配编号,r,dplyr,R,Dplyr,我想知道如何根据是否每10行增加一个数字 比如说 test_table <- data.frame(row=c(rev(0:99))) > head(test_table,11) row 1 99 2 98 3 97 4 96 5 95 6 94 7 93 8 92 9 91 10 90 11 89 这使得每个No列都成为1。我所寻找的是每10行数据变化中从0,1,2,3递增的数字。我该怎么做 row

我想知道如何根据是否每10行增加一个数字

比如说

test_table <- data.frame(row=c(rev(0:99)))

        > head(test_table,11)
   row
1   99
2   98
3   97
4   96
5   95
6   94
7   93
8   92
9   91
10  90
11  89
这使得每个
No
列都成为
1
。我所寻找的是每10行数据变化中从0,1,2,3递增的数字。我该怎么做

        row No
1    99  1
2    98  1
3    97  1
4    96  1
5    95  1
6    94  1
7    93  1
8    92  1
9    91  1
10   90  1
11   89  1
预期产量

   row No
1    99  0
2    98  0
3    97  0
4    96  0
5    95  0
6    94  0
7    93  0
8    92  0
9    91  0
10   90  0
11   89  1

您可以在
行编号上进行模块化除法

test_table %>% mutate(No = (row_number() - 1) %/% 10)

#    row No
#1    99  0
#2    98  0
#3    97  0
#4    96  0
#5    95  0
#6    94  0
#7    93  0
#8    92  0
#9    91  0
#10   90  0
#11   89  1
# ...

行号()除以
10
后,可以尝试使用
floor
。这将每10行增加
No

library(dplyr)

test_table <- data.frame(row=c(rev(0:99)))

test_table%>%
  mutate(No=floor((row_number()-1)/10))

#     row No
# 1    99  0
# 2    98  0
# 3    97  0
# 4    96  0
# 5    95  0
# 6    94  0
# 7    93  0
# 8    92  0
# 9    91  0
# 10   90  0
# 11   89  1
# 12   88  1
# 13   87  1
# 14   86  1
# 15   85  1
# 16   84  1
# 17   83  1
# 18   82  1
# 19   81  1
# 20   80  2
# 21   79  2
#......so on
库(dplyr)
测试表%
变异(编号=楼层((行号()-1)/10))
#排号
# 1    99  0
# 2    98  0
# 3    97  0
# 4    96  0
# 5    95  0
# 6    94  0
# 7    93  0
# 8    92  0
# 9    91  0
# 10   90  0
# 11   89  1
# 12   88  1
# 13   87  1
# 14   86  1
# 15   85  1
# 16   84  1
# 17   83  1
# 18   82  1
# 19   81  1
# 20   80  2
# 21   79  2
#……等等

这是一个基本的R解决方案

test_table$No <- (seq_len(nrow(test_table)) - 1) %/% 10

head(test_table, 15)
#    row No
# 1   99  0
# 2   98  0
# 3   97  0
# 4   96  0
# 5   95  0
# 6   94  0
# 7   93  0
# 8   92  0
# 9   91  0
# 10  90  0
# 11  89  1
# 12  88  1
# 13  87  1
# 14  86  1
# 15  85  1
test\u表$No
test_table$No <- (seq_len(nrow(test_table)) - 1) %/% 10

head(test_table, 15)
#    row No
# 1   99  0
# 2   98  0
# 3   97  0
# 4   96  0
# 5   95  0
# 6   94  0
# 7   93  0
# 8   92  0
# 9   91  0
# 10  90  0
# 11  89  1
# 12  88  1
# 13  87  1
# 14  86  1
# 15  85  1