如何确定每个列值在其自身动态范围内的唯一性?

时间:2016-09-12 10:18:20

标签: r

假设我的数据帧有一列,我希望添加另一列来指示我的第i个元素在第一个i元素中是否唯一。我想要的结果是:

c1  c2

1    1   
2    1   
3    1   
2    0   
1    0   

例如,1在{1}中是唯一的,2在{1,2}中是唯一的,3在{1,2,3}中是唯一的,2在{1,2,3,2}中不唯一,1不是{1,2,3,2,1}中的唯一身份。

这是我的代码,但由于我有近100万行,因此运行得非常慢。

for(i in 1:nrow(df)){
k <- sum(df$C1[1:i]==df$C1[i]))
if(k>1){df[i,"C2"]=0}
else{df[i,"C2"]=1}
}

有没有更快的方法来实现这个目标?

1 个答案:

答案 0 :(得分:1)

以下作品:

conf = {'app_id1': {'key1' : 'val', 'key2' : 'val'},
        'app_id2' : {'key1' : 'val', 'key2' : 'val'}
       }

或者,如果您更喜欢更明确的代码(我这样做,但在这种情况下它更慢):

x$c2 = as.numeric(! duplicated(x$c1))