本文介绍了基于 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 中的分组变量创建序列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!