【发布时间】:2018-04-19 07:08:19
【问题描述】:
我有一个如下所示的数据框:
Date Event
2018-06-01 A
2018-06-02 A
2018-06-02 B
2018-06-03 B
2018-06-04 B
2018-06-04 B
2018-06-05 A
我想提取同一事件连续多次发生的序列。因此,例如在上面显示的示例中,这会给我这个:
Event Sequence
A 2
B 4
A 1
我尝试使用rle,但遇到了问题,因为df$Event 不是原子向量。
由于我只有两种类型的事件,我想我可以做的是将A 替换为1 和B 替换为2 然后在df$Event 上使用as.numeric 以便我可以使用rle。但是,从长远来看,这似乎不太实用,还有什么更有效的方法来做到这一点?
【问题讨论】:
-
如果它是一个因素,只需使用
rle(as.character(df$Event)) -
@docendodiscimus 我想
as.integer会更快 -
@MichaelChirico,我怀疑这会成为瓶颈;如果您使用描述性标签而不是级别的整数表示,结果将提供更多信息。
-
@docendodiscimus 这行得通,谢谢!由于您的回答是评论,我无法接受。
标签: r