将连续数字分配给连续数字序列

时间:2016-11-03 14:58:41

标签: r

我的目的是向数据帧添加一个向量,该数据帧包括对应于另一个向量中连续数字序列的连续数字。

例如,在下面的数据框中,我想自动添加一个矢量V11,它保存连续的数字,V1中每个连续数字序列一个。换句话说,我想添加一个带有连续数字的向量V11,V2中的每个句子都有一个数字。

   V1      V2 V3   V4  V5 V6 V7    V8 V9 V10   V11
1   1       I  _ PRON PRP  _  2 nsubj  _   _     1
2   2     saw  _ VERB VBD  _  0  ROOT  _   _     1
3   3       a  _  DET  DT  _  4   det  _   _     1
4   4     man  _ NOUN  NN  _  2  dobj  _   _     1
5   5    with  _  ADP  IN  _  4  prep  _   _     1
6   6 glasses  _ NOUN NNS  _  5  pobj  _   _     1
7   7       .  _    .   .  _  2 punct  _   _     1
8   1       I  _ PRON PRP  _  2 nsubj  _   _     2
9   2     saw  _ VERB VBD  _  0  ROOT  _   _     2
10  3       a  _  DET  DT  _  4   det  _   _     2
11  4   woman  _ NOUN  NN  _  2  dobj  _   _     2
12  5       .  _    .   .  _  2 punct  _   _     2

我模糊地猜测这应该可以使用for循环,但我没有能力编程。

提前感谢您的回答。

2 个答案:

答案 0 :(得分:1)

基础R解决方案

cumsum(c(TRUE, diff(df1$V1) < 0))
#[1] 1 1 1 1 1 1 1 2 2 2 2 2

答案 1 :(得分:0)

这对你有用。 mydata是数据框的名称

mydata$V11=1
j=1
for(i in 2:nrow(mydata))
{
  if(mydata$V1[i]==(mydata$V1[i-1]+1))
    mydata$V11[i]=j
  else
  {
    j=j+1
    mydata$V11[i]=j
  }
}