如何解决如何按值将升序编号赋予数据框中的行
我有一个与此相似的数据框:
[a][b][c]
1 xxx a
2 xxx a
3 xxx a
4 xxx a
5 xxx b
6 xxx b
7 xxx c
8 xxx c
我需要做的是创建一个带有升序数字的新列。但是对于[c]的每个唯一值,数字都必须回到1。我正在寻找这样的东西:
[a][b][c]
1 xxx a 1
2 xxx a 2
3 xxx a 3
4 xxx a 4
5 xxx b 1
6 xxx b 2
7 xxx c 1
8 xxx c 2
解决方法
dplyr
的软件包tidyverse
可以提供帮助。使用n()
函数可以创建所需的索引。试试这个:
library(tidyverse)
#Data
df <- data.frame(var1=rep(c('a','b'),4),stringsAsFactors = F)
#Mutate
df %>% arrange(var1) %>% group_by_all() %>% mutate(var2=1:n())
输出:
# A tibble: 8 x 2
# Groups: var1 [2]
var1 var2
<chr> <int>
1 a 1
2 a 2
3 a 3
4 a 4
5 b 1
6 b 2
7 b 3
8 b 4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。