考虑一下我正在处理的这个名为data
的简单数据集:
text font_name font_size
<chr> <chr> <dbl>
1 POND_RETRAITE BAAAAA+Arial-BoldMT 12
2 Pondération BAAAAA+Arial-BoldMT 10
3 transversale BAAAAA+Arial-BoldMT 10
4 finale BAAAAA+Arial-BoldMT 10
5 du BAAAAA+Arial-BoldMT 10
6 ménage BAAAAA+Arial-BoldMT 10
字符串
我想创建一个名为group_var
的向量,长度为nrow(data)
,将data
的每个观测值分类到一个组中。每当font_name
、font_size
或两者都有修改时,组号都应该改变。
第一个观测值应该有自己的组。在这个例子中,group_var
应该简单地是:
[1] 1 2 2 2 2 2
型
我尝试的代码是:
group_var <- cumsum(c(TRUE, diff(data$font_size != lag(data$font_size,
default = data$font_size[1])) != 0 | diff(data$font_name
!= lag(data$font_name, default = data$font_name[1])) != 0))
型
然而,这将返回一个错误的输出,因为应该是一个新组的第一个元素有自己的单独组。请参阅:
print(group_var)
[1] 1 2 3 3 3 3
型
你能帮我解决这个简单的问题吗?
1条答案
按热度按时间wr98u20j1#
从
dplyr
使用函数consecutive_id
字符串
请注意,您可以使用
data.table::rleid
完成相同的操作型
因此,ant可用作:
型