我有一个电子邮件元数据表,按以下顺序排序,其中我知道数据已排序,每次出现“发件人”表示下一组条目代表另一封电子邮件的属性。
该列具有如下重复模式:
==============
Tag
==============
From
Recepient
CC_Recepient
CC_Recepient
Subject
From
Recepient
CC_Recepient
Subject
From
Recepient
Subject
From
etc..
==============
我需要创建第二列,这是每个电子邮件相关条目组的唯一标识符,如下所示。重复发生“从”是我必须识别下一组条目的开始的唯一方法。
<table><tbody><tr><th>Tag </th><th>Identifier</th></tr><tr><td>From </td><td>1</td></tr><tr><td>Recepient </td><td>1</td></tr><tr><td>CC_Recepient </td><td>1</td></tr><tr><td>CC_Recepient </td><td>1</td></tr><tr><td>Subject</td><td>1</td></tr><tr><td>From </td><td>2</td></tr><tr><td>Recepient</td><td>2</td></tr><tr><td>CC_Recepient</td><td>2</td></tr><tr><td>Subject</td><td>2</td></tr><tr><td>From</td><td>3 </td></tr><tr><td>Recepient</td><td>3</td></tr><tr><td>Subject</td><td>3</td></tr><tr><td>From</td><td>4</td></tr><tr><td>etc..</td><td> </td></tr></tbody></table>
答案 0 :(得分:3)
您可以检查Tag
是否等于 From ,然后根据条件执行cumsum
:
df$Identifier <- cumsum(df$Tag == "From")
df
# Tag Identifier
#1 From 1
#2 Recepient 1
#3 CC_Recepient 1
#4 CC_Recepient 1
#5 Subject 1
#6 From 2
#7 Recepient 2
#8 CC_Recepient 2
#9 Subject 2
#10 From 3
#11 Recepient 3
#12 Subject 3
#13 From 4
#14 etc.. 4