R 根据行数在新列中分配编号
我想知道如何根据是否每10行增加一个数字 比如说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
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