2017-07-03 58 views
0

我有数据帧:每个ID呐价值

id value 
19  56 
19  56 
19  56 
19  98 
19  98 

id列有很多不同的含义,不只是19我需要做的是:每个ID

id value 
19  56 
19  NA 
19  NA 
19  98 
19  NA 

等等。

回答

2

你可以使用replace()

df %>% group_by(id) %>% 
    mutate(test = replace(value, duplicated(value), NA)) 
#  id value test 
# <int> <int> <int> 
#1 19 56 56 
#2 19 56 NA 
#3 19 56 NA 
#4 19 98 98 
#5 19 98 NA 
3

我们可以使用duplicatedbase R创建一个逻辑索引的 '价值' 分配给NA

df1$value[duplicated(df1)] <- NA 
df1 
# id value 
#1 19 56 
#2 19 NA 
#3 19 NA 
#4 19 98 
#5 19 NA