基于 R 中的分组变量创建序列 [英] Create sequence based on grouping variable in R

查看:40
本文介绍了基于 R 中的分组变量创建序列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种方法来创建一个数字序列 ($C),每当一个字符串在 ($A) 中发生变化时,该序列就会上升.这取决于分组变量 ($B).示例:

I'm looking for a way to create a sequence of numbers ($C) that ascend every time a string changes in($A). This is contingent on a grouping variable ($B). Example:

A    B C
a1   1 1
a1   1 1
a1   1 1
a10  1 2
a10  1 2
a2   1 3
a1   2 1
a20  2 2
a30  2 3

推荐答案

或使用 dplyr

df %>% group_by(B) %>% mutate(C = match(A, unique(A)))
# Source: local data frame [9 x 3]
# Groups: B
# 
#     A B C
# 1  a1 1 1
# 2  a1 1 1
# 3  a1 1 1
# 4 a10 1 2
# 5 a10 1 2
# 6  a2 1 3
# 7  a1 2 1
# 8 a20 2 2
# 9 a30 2 3

使用 base R

df$C <- with(df, ave(as.character(A), B, FUN=function(x) match(x, unique(x))))

这篇关于基于 R 中的分组变量创建序列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆